伟大的实践----将ICPC文化带给新生(幕后)~
在一个炎热的下午,咩酱与小将军君莫笑共谋大事,决定干票大的,命运的齿轮开始转动。
由于5月份时期咩酱与小将军带领实验室走南闯北,先后到了济南,西安,郑州,商丘。体验了CCPC,ICPC的氛围,一致认为这才是ACMer应该参加的竞赛,应该让学弟学妹亲身体会。
初步进展:滚榜finish———————————————————————————————————————————开始一筹莫展的咩酱询问了河南省赛的承办院校如何实现滚榜,然而被告知需要在LINUX上,而且一旦部署,咩酱的电脑就要一直留在实验室供后届使用。咩酱与小将军君莫笑觉得要干就一劳永逸,实现傻瓜式操作,谁下载谁可用。
随后咩酱在Github上面海搜,胡搜海搜,漫长的飘荡在Github上,终于搜到了河北省CCPC省赛滚榜系统,针对PTA平台开发。咩酱马上就下载到了自己电脑上开始调试。大篇幅的python代码一时令咩酱头晕目眩,各种缺包,各种pip install。摇来了各路神仙,终于在咩酱的好友爬虫巨佬帮助下,实现了将排行榜内容与选手信息联合起来写入json文件供resolver tool使用。在PTA平台测试非常成功气球机fi ...
南阳师范学院ACM实验室招新中~
你是否想在大学发现一个更精彩的新世界?
你是否对自己的天赋充满信心?(尤其是逻辑能力或数学思维)
你是否想体验最极致的编程乐趣?
你是否想找一群志同道合的朋友一起奋斗?
那么,来加入NYNU的算法工作室吧!———————————————————————————————————————————————————————————————————
什么是ACM?ACM 全称 ACM-ICPC,原本专指国际大学生程序设计竞赛(International Collegiate Programming Contest)。
由国际计算机学会(Association for Computing Machinery,简称 ACM )赞助与冠名。虽然从 2018 年起 ICPC 从 ACM 名下独立出来,但还是延续传统继续称之为 ACM 竞赛。
比赛赛制为 5 小时内三人一队利用一台计算机编程解决算法问题。其余类似赛制的比赛也常用 ACM 指代,泛指种种大学生算法竞赛。
进入工作室后能干什么?我们关注的算法竞赛主要包括:
国际大学生程序设计竞赛(ICPC)
中国大学生程序设计竞赛(CCPC)
蓝桥 ...
ACM:位运算基础
123456789101112131415去掉最后一位 把右数第k位取反 把右边连续的0变成1x>>1 x^(1<<(k-1)) x|(x-1)在最后加一个0 取末k位 取右边连续的1x<<1 x&((1<<k)-1) (x^(x+1))>>1在最后加一个1 取右数第k位 去掉右起的第一个1的左边(x<<1)+1 (x>>(k-1))&1 x&(-x)把最后一位变成1 把末k位变成1x|1 x|((1<<k)-1)把最后一位变成0 末k位取反(x|1)-1 x^((1<<k)-1)最后一位取反 把右边连续的1变成0x^1 (x&(x+1))把右数第k位变成1 把右起的第一个0变成1x|(x<<(k-1)) x|(x+1)
ACM:STL总结
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220 ...
ACM:bigint板子
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220 ...
ACM:N阶行列式自乘
1234567891011121314151617181920212223int sol(int x)//行列式长度{ int res=1,w=1; for(int i=1;i<=x;i++) { for(int j=i+1;j<=x;++j) { while(a[i][i]) { int div=a[j][i]/a[i][i]; for(int k=i;k<=x;++k) { a[j][k]=(a[j][k]-1ll*div*a[i][k]); } swap(a[i],a[j]);w=-w; }//对第 i 行和第 j 行做辗转相减。 swap(a[i],a[j]);w=-w; } } for(int i=1;i<=x;i++)res=1ll*a[i][i]*res; res=1ll*w*res; return res;} ...
ACM:圆方树
圆方树
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102//#include<bits/stdc++.h>using namespace std;const int N=1e5+10;struct Edge{ int to,nx,val;}ed[N*2],ed2[N*2];int h[N],idx;void add(int a,int b,int c){ ed[++idx].to=b; ed[idx].nx=h[a]; ed[idx].val=c; h[a]=idx;}int h2[N],idx2;void add2(int a,int b,int c){ ed2[++idx2].t ...
ACM:KM最大权匹配
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596//将两个点集匹配到一起#pragma GCC optimize(3,"Ofast","inline")#pragma comment(linker, "/STACK:1024000000,1024000000")#include<bits/stdc++.h>using namespace std;#define endl '\n'int p,h;//左边点,右边点const int N=200;const int INF=999999999;int a[N][3];//左边点坐标x,y;int b[N][3];//右边点坐标x,y;i ...
ACM:旋转卡壳 凸包周长
旋转卡壳 凸包周长
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091#include<bits/stdc++.h>using namespace std;const double eps = 1e-8;int sign(double x) { // 符号函数 if (fabs(x) < eps) return 0;//x是0 if (x < 0) return -1;//x是负数 return 1;//x是正数}struct Point{ double x, y; Point(double x = 0, double y = 0) : x(x), y(y) { } Point operato ...
ACM:凸多边形半平面交
凸多边形半平面交
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120//逆时针给出 n 个凸多边形的顶点坐标,求它们交的面积#include<bits/stdc++.h>using namespace std;const double pi = acos(-1);//πconst double eps = 1e-8;int sign(double x) { // 符号函数 if (fabs(x) < eps) return 0;//x是0 if (x < 0) return -1;//x是负数 ...