摘要:
这题最开始数据比较水,后来加强了,我没过hack数据,我的代码最主要的问题是有一些点会从前面无法经过的点更新,所以就需要初始化f为最小值 #include<iostream> #include<cstring> using namespace std; #define int long long c 阅读全文
摘要:
崩溃了,debug半天发现是变量名重复了 #include<iostream> #include<cstring> #define int long long using namespace std; const int N=1e5; int q[N]; int f[N]; int w[N]; in 阅读全文
摘要:
  阅读全文
摘要:
位运算符好麻烦,没打括号被卡了半天 #include<iostream> #define int long long using namespace std; int f[12][100][1<<11]; int s[1<<11]; int num[1<<11]; signed main(){ in 阅读全文
摘要:
由于我的cnt是从一开始的,我还debug了一会 由于数据是一行一行的输入,我们不能像蒙德里安的梦想那样,按列判断 if((s[a]&g[i])s[a]&&(!(s[a]&s[b])))f[i][a]=(f[i][a]+f[i-1][b])%p; 如果(s[a]&g[i])s[a]说明s[a]在g[ 阅读全文
摘要:
1.首先就是每列状态的表示,如果该列有横着的方块就用1,表示否则就用零,一共n行最多有n个一就是2^n-1最少0个一就是0,所以0<=i<n;j表示i位移的个数,i最多n位所以最多位移n-1位来检验i每一位,如果是1就检验cnt来检验是否有连续奇数个0,最后还要再检验一次来检验高位零 #includ 阅读全文