hdu 5301Buildings
机智题,卡了好久,最后小坤纸上去敲过了。。做法:假设n hdu 5302Connect the Graph 构造题。当n >= 5时肯定有解。n为奇数,假设b2 = n, w2 = n,直接可以构造出1,2,3……n一个环满足b2 = n,构造1,3,5……2,4……1这样的环满足w2 = n。n为偶数,假设b2 = n, w2 = n,可以构造出1,2,3……n满足b2 = n,构造1,3,5……2,n,n-2,n-4……4满足w2 = n。对于b2 != n, w2 != n直接拆环就好了。对于n <= 4爆搜一下就好了。(实际上b0, b1, b2, w0, w1, w2都大于等于1,小于5的情况好像只有1,2,1,1,2,1才有解,其他无解,不需要搜)
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 11 #define inf 0x3f3f3f3f12 #define eps 1e-913 #define FOR(i,s,t) for(int i = s; i
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 11 #define inf 0x3f3f3f3f 12 #define eps 1e-6 13 #define MP make_pair 14 #define LL long long 15 #define N 1000010 16 #define M 200020 17 #define mod 1000000007 18 19 int n, a[2][3], c[N]; 20 void work(int col){ 21 if(a[col][2] == n){ 22 for(int i = 1; i
一道十分好的贪心题。最多只能绕一次环。
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 11 #define inf 0x3f3f3f3f12 #define eps 1e-913 #define FOR(i,s,t) for(int i = s; i 一道FFT的题目。用复数模板的FFT会因为精度误差而wa,又找了一个用快速数论变换的模板。中间有一个O(1)longlong内的乘法,我也不知道为什么这样算是对的。。
设所有的答案为 sigma(j - i +1) * X^(Sj - Si),拓展开来就可以得到题解的式子,
可以用FFT求出所有正数的答案。ans0再另外处理一下。
(c++交上去是超时的,g++才能过)
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 11 #define inf 0x3f3f3f3f 12 #define eps 1e-5 13 #define pii pair 14 #define MP make_pair 15 #define LL long long 16 #define N 100010 17 #define M 200020 18 #define mod 1000000007 19 20 int read(){ 21 int ret = 0; char ch = getchar(); 22 while(ch '9') ch = getchar(); 23 while(ch >= '0' 28 putchar(x % 10 + '0'); 29 } 30 const LL P = 50000000001507329LL, NN = 1LL<>= 1; 42 } 43 return ret; 44 } 45 LL wn[25]; 46 void getWn(){ 47 for(int i = 0; i <= 20; ++i){ 48 int t = 1 << i; 49 wn[i] = qpow(G, (P - 1) / t, P); 50 } 51 } 52 void Rader(LL *a, int len){ 53 int k; 54 for(int i = 1, j = len / 2; i 算24点。傻逼了,7个7竟然没算出来。。贴纬哥的代码
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 11 #define inf 0x3f3f3f3f 12 #define eps 1e-9 13 #define FOR(i,s,t) for(int i = s; i 