摘要:
题目链接这题,明显考察搜索能力。。。在中文版的维基百科中找到了公式。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define MOD 1000000007 7 #define LL __int64 8 LL dp[200001]; 9 int que[1001],flag[1001];10 int main()11 {12 int i,n,t,j,num;13 LL x;14 num = 0;15 for(i = 0;;i ++)16 {17 ... 阅读全文
摘要:
题目链接6Y什么水平。。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define LL __int64 7 #define INF 10000000 8 int dp1[10001]; 9 int dp2[10001];10 LL p[200001];11 LL sum[200001];12 int main()13 {14 int n,m,i,ans;15 while(scanf("%d%d",&n,&m)!=EOF)16 {17 memset(s... 阅读全文
摘要:
题目链接暴力水过的,比赛的时候T了两次,优化一下初始化,终于水过了。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define MOD 1000000007 7 #define LL __int64 8 double dp[2][1<<20]; 9 int que[1<<20];10 int flag[1<<20];11 double o[250];12 char str[250];13 int p[250];14 int judge(char s)15 {16 阅读全文
摘要:
题目链接主要是pushup的代码,其他和区间更新+扫描线差不多。那个区间如果要再刷一层x,那么sum[x][rt] = que[r+1] - que[l];但是如果原本有颜色为i,颜色将会变成i|x,sum[x][rt] 要减去以前的i颜色的部分。sum[i|x][rt]要加上那部分。这个题还可以用容斥,容斥的话,多次求面积并就可以了,代码直接是模版,对扫描线,还是不熟啊。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define LL __int64 7 #define ma... 阅读全文