[Atcoder Grand Contest 003] Tutorial】的更多相关文章

Link: AGC003 传送门 A: 判断如果一个方向有,其相反方向有没有即可 #include <bits/stdc++.h> using namespace std; ]; map<char,bool> mp; int main() { scanf("%s",s); ;i<strlen(s);i++) mp[s[i]]=true; if(mp['S']==mp['N']&&mp['E']==mp['W']) puts("Ye…
AtCoder Grand Contest 003 A - Wanna go back home 翻译 告诉你一个人每天向哪个方向走,你可以自定义他每天走的距离,问它能否在最后一天结束之后回到起点. 题解 什么逗逼东西... #include<cstdio> #include<cstring> using namespace std; char s[1010]; bool W,E,S,N; int main() { scanf("%s",s+1); for(in…
题目传送门:https://agc003.contest.atcoder.jp/tasks/agc003_d 题目大意: 给定\(n\)个数\(s_i\),要求从中选出尽可能多的数,满足任意两个数之积都不是完全立方数 对于每个数\(s_i\),有\(s_i=\prod\limits_{i=1}^mp_i^{k_i}\),则我们令\(a_i=\prod\limits_{i=1}^mp_i^{k_i\%3}\),然后我们用\(a_i\)代替\(s_i\)来进行考虑, 对于每个\(a_i\),满足\(…
题目传送门:https://agc003.contest.atcoder.jp/tasks/agc003_e 题目大意 一串数,初始为\(1\sim N\),现有\(Q\)个操作,每次操作会把数组长度变成\(L_i\),多余的长度直接截断:长度不够则循环填充,问最后\(1\sim N\)每个数的出现次数 首先维护一个单调递增的栈,因为较短的\(L_i\)可以让较长的\(L_{i'}\)失去其意义 然后我们倒推,对于一个\(L_i\),它能对\(L_{i-1}\)产生\(F_i×\lfloor\d…
题目传送门:https://agc003.contest.atcoder.jp/tasks/agc003_f 题目大意: 给定一个\(H×W\)的黑白网格,保证黑格四连通且至少有一个黑格 定义分形如下:\(0\)级分形是一个\(1×1\)的黑色单元格,\(k+1\)级分形由\(k\)级分形得来.具体而言,\(k\)级分形中每个黑色单元格将会被替换为初始给定的\(H×W\)的黑白网格,每个白色单元格会被替换为\(H×W\)的全白网格 求\(k\)级分形的四连通分量数,答案对\(10^9+7\)取模…
Link: AGC004 传送门 A: …… #include <bits/stdc++.h> using namespace std; long long a,b,c; int main() { scanf("%lld%lld%lld",&a,&b,&c); ==||b%==||c%==) puts("); else printf("%lld",min(a*b,min(a*c,b*c))); ; } Problem A…
Atcoder 题面传送门 & 洛谷题面传送门 Yet another AGC F,然鹅这次就没能自己想出来了-- 首先需注意到题目中有一个条件叫做"黑格子组成的连通块是四联通的",这意味着我们将所有黑格都替换为题目中 \(H\times W\) 的标准型之后,黑格(标准型)内部是不会对连通块个数产生贡献的,产生贡献的只可能是黑格与黑格之间的边不产生连通块.如果我们记 \(G_{\text{h}}\) 两个标准型横着拼在一起得到的 \(H\times 2W\) 的图形,\(G_…
Link: AGC002 传送门 A: …… #include <bits/stdc++.h> using namespace std; int a,b; int main() { scanf("%d%d",&a,&b); ) puts("Positive"); &&b>=) puts("Zero"); ) puts("Positive"); else puts("N…
Link: AGC001 传送门 A: …… #include <bits/stdc++.h> using namespace std; ; ]; int main() { scanf("%d",&n); ;i<=*n;i++) scanf("%d",&dat[i]); sort(dat+,dat+*n+); ;i<=*n;i+=) res+=dat[i]; printf("%lld",res); ; }…
传送门 \(A\) 咕咕 const int N=1005; char s[N];int val[N],n; int main(){ scanf("%s",s+1),n=strlen(s+1); fp(i,1,n)++val[s[i]]; if((val['W']!=0)^(val['E']!=0))return puts("No"),0; if((val['S']!=0)^(val['N']!=0))return puts("No"),0; r…