CS Academy Round #44 A B C D
来源:互联网 发布:wps mac免费版 编辑:程序博客网 时间:2024/05/17 21:49
A
计算出现>=k次的数有多少个
int cnt[maxn];int bo[maxn];int main(){#ifdef LOCAL freopen("input.txt","r",stdin);// freopen("output.txt","w",stdout);#endif // LOCAL int n,k; sdd(n,k); int ans = 0; r1(i,n) { int x;sd(x); if(++cnt[x]>=k) { if(!bo[x]) { bo[x]=1; ++ans; } } } ansn(); return 0;}
B
计算是否能对每个数字用一个正方形框住所有这个数字并且内部全是相同的数
int num[maxn][maxn];bool vis[maxn][maxn];bool check[maxm];int dx[] = {1,-1,0,0} , dy[] = {0,0,-1,1};int rowmx,colmx;int n,m;int cnt;bool judge(int x,int y){ return 1<=x&&x<=n&&1<=y&&y<=m;}void dfs(int x,int y){ ++cnt; vis[x][y]=1; rowmx = max(rowmx,x); colmx = max(colmx,y); r0(i,4) { int nx = dx[i] +x , ny = dy[i]+y; if(judge(nx,ny)&&!vis[nx][ny]&&num[nx][ny]==num[x][y]) dfs(nx,ny); }}int main(){#ifdef LOCAL freopen("input.txt","r",stdin);// freopen("output.txt","w",stdout);#endif // LOCAL// int n,m; sdd(n,m); r1(i,n) { r1(j,m)sd(num[i][j]); } bool ok = 1; r1(i,n) r1(j,m) { int x = num[i][j]; if(vis[i][j])continue; if(check[x]){ok=0;break;} else { cnt=0; check[x]=1; rowmx = i,colmx = j; dfs(i,j); if(rowmx-i!=colmx-j){ok=0;break;} int sq = sqrt(cnt+0.5); if(sqr(sq)!=cnt){ok=0;break;} } } int ans = ok; ansn(); return 0;}
C
检查从1开始dfs弄否走出给定序列
需要注意的是dfs是优先走完所有能走的路
int a[maxn];map<int,int>ma[maxn];vector<int>G[maxn];bool vis[maxn];int n,m;int cnt;bool ok=1;void dfs(int u){ ++cnt; vis[u]=1; while(cnt<=n) { int v = a[cnt]; if(ma[u][v]&&!vis[v])dfs(v); else { rsz(i,G[u]) { int q = G[u][i]; if(!vis[q]) { ok=0; break; } } return ; } } return ;}int main(){#ifdef LOCAL freopen("input.txt","r",stdin);// freopen("output.txt","w",stdout);#endif // LOCAL// int n,m; sdd(n,m); r1(i,n)sd(a[i]); ma[0][1]=1; r1(i,m) { int u,v; sdd(u,v); ma[v][u]=ma[u][v]=1; G[u].pb(v),G[v].pb(u); } dfs(0); int ans=0; if(cnt>n)ans = 1; if(!ok) ans = 0; ansn(); return 0;}
D
给一个n,m
可以取左下角为[0,0] 右上角为[n,m]的点
找四个点组成一个正方形 问有多少种情况
可以注意到当正方形是斜着的时候 可以用一个正方形框住它
int main(){#ifdef LOCAL freopen("input.txt","r",stdin);// freopen("output.txt","w",stdout);#endif // LOCAL int n,m; sdd(n,m); ll ans = 1LL*n*m ; int mn = min(n,m); for(int i=2;i<=mn;++i) { int a = n - i + 1; int b = m - i + 1; ll t = 1LL*a*b; ll add = t * i; ans += add; if(ans>mod)ans%=mod; } lansn(); return 0;}
阅读全文
0 0
- CS Academy Round #44 A B C D
- CS Academy Round #43 A B C D
- CS Academy Round #49 A, B, C
- CS Academy Round #50 D.Min Races
- CS Academy Round #49 C.Max Substring
- CS Academy Round #49 C.Max Substring 【后缀数组】
- Codeforces Round #351 A B C D
- Codeforces Round #377 A.B.C.D
- CS Academy Round #32 Light Count
- CS Academy Round #33 Subinterval Division
- Codeforces Round #179 (Div. 2)A、B、C、D
- Codeforces Round #186 (Div. 2)A、B、C、D、E
- Codeforces Round #198 (Div. 1)(A,B,C,D)
- Codeforces Round #202 (Div. 2) (A、B、C、D)
- Codeforces Round #211 (Div. 2)(A,B,C,D)
- Codeforces Round #220 (Div. 2)(A,B,C,D)
- Codeforces Round#229 DIV2 A,B,C,D
- Codeforces Round #231 (Div. 2)A, B, C, D
- 2017南京java常见面试题
- iOS学习笔记-098.彩票13——设置2_UITableViewCell创建
- 循环神经网络(Recurrent Neural Network, RNN)与LSTM
- MySQL使用存储过程插入千万级数据如何提升效率?
- python 爬虫访问网页时候,总是报错404错误
- CS Academy Round #44 A B C D
- MySQL分类汇总(group by...with rollup)统计时,如何显示“总计”字段?
- 环形数组删除问题
- iOS学习笔记-099.彩票14——设置3_UITableViewController基类提取
- nmap学习笔记
- 购物车逻辑
- ABAP系统变量(SY-系统值)
- 《 Effective Java》关于泛型,方法和枚举,注解的建议
- MapReduce中数据处理详解