Codeforces Round #368 (Div. 2)
来源:互联网 发布:电子书软件哪个好 编辑:程序博客网 时间:2024/05/21 11:25
C - Pythagorean Triples
题意:如何构造勾股数
设 (a,b,c) 是勾股数,
当 a 为大于 1 的奇数 2n+1 时, b=2n2+2n,c=2n2+2n+1 ,
当 a为大于 4 的偶数 2n 时, b=n2−1,c=n2+1 。
D - Persistent Bookcase
将状态作为节点进行dfs,这样对于操作4就可以很方便的进行统计,详细见:Codeforces Problem 707D Persistent Bookcase(dfs+bitset)
#include<bits/stdc++.h>using namespace std;const int INF=0x3f3f3f3f;const int maxn=1010;const int maxq=100010;int N,M,Q;int ans[maxq];int op[maxq],a[maxq],b[maxq];vector<int> G[maxq];bool book[maxn][maxn],rev[maxn];int num[maxn];int result;void dfs(int u){ int len=G[u].size(); ans[u]=result; for(int i=0;i<len;i++){ int v=G[u][i],x=a[v],y=b[v]; int inum=num[x],irev=rev[x]; int ibook=book[x][y],ires=result;; if(op[v]==1 && book[x][y] ^ rev[x] == 0){ book[x][y] ^=1; num[x]++; result++; } else if(op[v]==2 && book[x][y] ^ rev[x] == 1){ book[x][y] ^=1; num[x]--; result--; } else if(op[v]==3){ result+=M-2*num[x]; num[x]=M-num[x]; rev[x] ^=1; } dfs(v); num[x]=inum; rev[x]=irev; book[x][y]=ibook; result=ires; }}int main(){ freopen("in.txt","r",stdin); scanf("%d%d%d",&N,&M,&Q); for(int i=1;i<=Q;i++){ scanf("%d",&op[i]); if(op[i]<=2){ scanf("%d%d",&a[i],&b[i]); G[i-1].push_back(i); } else if(op[i]==3){ scanf("%d",&a[i]); G[i-1].push_back(i); } else { scanf("%d",&a[i]); G[a[i]].push_back(i); } } dfs(0); for(int i=1;i<=Q;i++)printf("%d\n",ans[i]); return 0;}
0 0
- Codeforces Round #368 (DIV 2)
- Codeforces Round #368 (Div. 2)
- Codeforces Round #368 (Div. 2)
- Codeforces Round #368 (Div. 2)
- Codeforces Round #368 (Div. 2)
- Codeforces Round #368 (Div. 2)
- Codeforces Round #368 (Div. 2)
- Codeforces Round #368 (Div. 2)
- Codeforces Round #368 (Div.2)
- Codeforces Round #368 (Div. 2)
- Codeforces Round #368 (Div. 2)
- Codeforces Round #368 (Div. 2)
- 【codeforces】Codeforces Round #368 (Div. 2)
- Codeforces Round #368 (Div. 2) C
- Codeforces Round #368 (Div. 2) Bakery
- Codeforces Round #368 (Div. 2) A~D
- Codeforces Round #368 (Div. 2) Pythagorean Triples
- Codeforces Round #368 (Div. 2) A C
- 【框架】[Hibernate]利用Hibernate进行单表的增删改查-Web实例
- Java中的break,continue与return
- MachineLearning:一、什么是机器学习
- Java中十六进制转换 Integer.toHexString()
- boost之路 十五 错误处理
- Codeforces Round #368 (Div. 2)
- spring 事务失效
- docker stuff
- BZOJ1406 [AHOI2007]密码箱
- servlet的配置即web.xml的配置
- 【SDL】SDL学习笔记一 SDL的子系统的初始化和退出
- WordPress迁移过程中遇到的问题总结
- boost之路 十六 类型转换操作符
- BZOJ1082 [SCOI2005]栅栏