关键词:
Codeforces Round #425 (Div. 2)
A超级水,三分钟1a
#include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include<vector> #include<cstdio> #include<cassert> #include<iomanip> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> #define C 0.5772156649 #define pi acos(-1.0) #define ll long long #define mod 1000000007 #define ls l,m,rt<<1 #define rs m+1,r,rt<<1|1 #pragma comment(linker, "/STACK:1024000000,1024000000") using namespace std; const double g=10.0,eps=1e-7; const int N=100000+10,maxn=500+100,inf=0x3f3f3f; int main() { ios::sync_with_stdio(false); cin.tie(0); ll a,b; cin>>a>>b; ll ans=a/b; if(ans&1)cout<<"YES"<<endl; else cout<<"NO"<<endl; return 0; } /********************* *********************/
B有点坑啊,我分了很多种情况考虑,最后重判还是wa了,考虑输入字符串与原来字符串的长度问题
#include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include<vector> #include<cstdio> #include<cassert> #include<iomanip> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> #define C 0.5772156649 #define pi acos(-1.0) #define ll long long #define mod 1000000007 #define ls l,m,rt<<1 #define rs m+1,r,rt<<1|1 #pragma comment(linker, "/STACK:1024000000,1024000000") using namespace std; const double g=10.0,eps=1e-7; const int N=100000+10,maxn=500+100,inf=0x3f3f3f; bool good[30]; int main() { ios::sync_with_stdio(false); cin.tie(0); string s,p; cin>>s>>p; memset(good,0,sizeof good); for(int i=0;i<s.size();i++) good[s[i]-‘a‘]=1; int k; cin>>k; while(k--){ string a; cin>>a; if(a.size()>p.size()) { bool ok=1; int res=a.size()-p.size(),i,j; for(i=0,j=0;i<p.size()&&j<a.size();) { if(p[i]==‘?‘) { if(!good[a[j]-‘a‘]) { ok=0; break; } } else if(p[i]==‘*‘) { for(int l=i;l<=i+res;l++) if(good[a[l]-‘a‘]) { ok=0; break; } } else { if(p[i]!=a[j]) { // cout<<i<<" "<<j<<endl; ok=0; break; } } if(p[i]==‘*‘)i++,j+=res+1; else i++,j++; } // cout<<i<<" "<<j<<endl; if(ok&&j==a.size())cout<<"YES"<<endl; else cout<<"NO"<<endl; } else if(a.size()+1==p.size()) { bool ok=1; int i,j; for(i=0,j=0;i<p.size();) { if(p[i]==‘?‘) { if(!good[a[j]-‘a‘]) { ok=0; break; } } else if(p[i]!=‘*‘) { if(a[j]!=p[i]) { ok=0; break; } } if(p[i]==‘*‘)i++; else i++,j++; // cout<<i<<" "<<j<<endl; } if(ok&&i==p.size())cout<<"YES"<<endl; else cout<<"NO"<<endl; } else if(a.size()+1<p.size()) { cout<<"NO"<<endl; continue; } else { bool ok=1; for(int i=0;i<p.size();i++) { if(p[i]==‘?‘) { if(!good[a[i]-‘a‘]) { ok=0; break; } } else if(p[i]==‘*‘) { if(good[a[i]-‘a‘]) { ok=0; break; } } else { if(a[i]!=p[i]) { ok=0; break; } } } if(ok)cout<<"YES"<<endl; else cout<<"NO"<<endl; } } return 0; } /********************* a ab 1 a *********************/
C过的人很少,放弃了
D比赛的时候知道是lca,但是不会lca了(太弱了。)
先三个点求lca,找到最深的节点就是转折点,然后求转折点到三个点的最大距离+1就是答案了
#include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include<vector> #include<cstdio> #include<cassert> #include<iomanip> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> #define C 0.5772156649 #define pi acos(-1.0) #define ll long long #define ull unsigned long long #define mod 1000000007 #define ls l,m,rt<<1 #define rs m+1,r,rt<<1|1 #pragma comment(linker, "/STACK:1024000000,1024000000") using namespace std; const double g=10.0,eps=1e-12; const int N=100000+10,maxn=500+100,inf=0x3f3f3f; vector<int>v[N]; int depth[N],father[20][N]; void dfs(int u,int f,int d) { father[0][u]=f; depth[u]=d; for(int i=0;i<v[u].size();i++) if(v[u][i]!=f) dfs(v[u][i],u,d+1); } int lca(int x,int y) { if(depth[x]>depth[y])swap(x,y); for(int k=0;k<20;k++) if((depth[y]-depth[x])>>k&1) y=father[k][y]; if(x==y)return x; for(int k=20-1;k>=0;k--) { if(father[k][x]!=father[k][y]) { x=father[k][x]; y=father[k][y]; } } return father[0][x]; } int dis(int x,int y) { return depth[x]+depth[y]-2*depth[lca(x,y)]; } void init(int n) { dfs(1,-1,0); for(int i=1;i<20;i++) { for(int j=1;j<=n;j++) { father[i][j]=father[i-1][father[i-1][j]]; } } } int main() { /* ios::sync_with_stdio(false); cin.tie(0);*/ int n,q; scanf("%d%d",&n,&q); for(int i=1;i<=n;i++)v[i].clear(); for(int i=2;i<=n;i++) { int a; scanf("%d",&a); v[i].push_back(a); v[a].push_back(i); } memset(father,-1,sizeof father); memset(depth,0,sizeof depth); init(n); while(q--){ int a,b,c; scanf("%d%d%d",&a,&b,&c); int x=lca(a,b),y=lca(b,c),z=lca(a,c); //cout<<x<<" "<<y<<" "<<z<<endl; if(depth[x]<depth[y])x=y; if(depth[x]<depth[z])x=z; printf("%d ",max(dis(x,a),max(dis(x,b),dis(x,c)))+1); } return 0; } /********************* 3 2 1 1 1 2 3 2 3 3 *********************/
暑假集训cf50练之15
CodeForces402A水题,模拟#include<map>#include<set>#include<cmath>#include<queue>#include<stack>#include<vector>#include<cstdio>#include<cassert>#include<i 查看详情
暑假集训cf50练之10
A水题,判断第一个,后面的全是0#include<map>#include<set>#include<cmath>#include<queue>#include<stack>#include<vector>#include<cstdio>#include<cassert>#include<ioma 查看详情
暑假集训cf50练之18
CodeforcesRound#426(Div.2)A,判断向哪边旋转的,枚举过的= =,感觉我的太复杂了,应该有更简单的方法#include<map>#include<set>#include<cmath>#include<queue>#include<stack>#include<vector>#include& 查看详情
暑假集训cf50练之15
CodeforcesRound#370(Div.2)A水,直接看样例找规律,数组开小导致wa了一发。。。#include<map>#include<set>#include<cmath>#include<queue>#include<stack>#include<vector>#include<cstdio>#in 查看详情
暑假集训cf50练之7
CodeforcesRound#409第一题很水但是wa了一发,因为没考虑K前面是K的情况#include<map>#include<set>#include<cmath>#include<queue>#include<stack>#include<vector>#include<cstdio>#include&l 查看详情
暑假集训cf50练之12
这是一场爆0的比赛。。。。。。第一题wa了20发,longlong改double再改unsignedlonglong还是wa,最后判断的时候改成除,边界设为1e19就过了#include<map>#include<set>#include<cmath>#include<queue>#include<stack>#include<ve 查看详情
暑假集训cf50练之3
CodeforcesRound#349(Div.2)第一题直接算就行了为了追求手速忘了输出yes导致wa了一发。。。第二题技巧题,直接sort,然后把最大的和其他的相减就是构成一条直线,为了满足条件就+1#include<map>#include<set>#include<cmath>#include&... 查看详情
暑假集训cf50练之8
CodeforcesRound#400最近好像总是有点不想打,专题也刷不动,还是坚持这做了一场,虽然打到一半就没打了。。。(反正通常都只能做出两题)感觉自己切水题越来越熟练了,然而难题还是不会做。。A题,水,用vector存下来就行了#... 查看详情
暑假cf50练之1
CodeforcesRound#202(Div.2)第一题水题但是wa了一发,排队记录下收到的25,50,100,看能不能找零,要注意100可以找25*3复杂度O(n)第二题贪心,先找出最小的花费,然后就能得出最长的位数,然后循环对每个位上的数看能不能加上剩... 查看详情
[暑假集训--数位dp]cf55dbeautifulnumbers
Volodyaisanoddboyandhistasteisstrangeaswell.Itseemstohimthatapositiveintegernumberisbeautifulifandonlyifitisdivisiblebyeachofitsnonzerodigits.Wewillnotarguewiththisandjustcountthequantityofbeautifulnu 查看详情
2022.07.14暑假集训个人排位赛(代码片段)
2022.07.14暑假集训个人排位赛(九)赛后反省无ProblemF出处Codeforces-844D题解反着过来想,其实就是合并果子而已,变成了3堆。代码//GoodGoodStudy,DayDayAC.#include<iostream>#include<stdio.h>#include<cstdio> 查看详情
2022.07.14暑假集训个人排位赛(代码片段)
2022.07.14暑假集训个人排位赛(九)赛后反省无ProblemF出处Codeforces-844D题解反着过来想,其实就是合并果子而已,变成了3堆。代码//GoodGoodStudy,DayDayAC.#include<iostream>#include<stdio.h>#include<cstdio> 查看详情
暑假集训day11
时间回到昨天。今天学了一个超丧的东西——博弈论倒是挺有趣的。Treblecross(UVA_10561)这题细节很多,de了一天的bug话说博弈论的代码不是都不超过50行的吗、、、、#include<iostream>#include<cstdio>#include<cstring>usingnamespacest... 查看详情
暑假集训day7
从今天开始,进入数据结构专场。今天讲线段树。第一题就好丧,调了快一天。LA3938好像没什么可说的,就是细节比较多罢了#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>usingnamespacestd;constintmaxn=500010;inl... 查看详情
2022.07.14暑假集训个人排位赛(代码片段)
2022.07.14暑假集训个人排位赛(九)赛后反省无ProblemF出处Codeforces-844D题解反着过来想,其实就是合并果子而已,变成了3堆。代码//GoodGoodStudy,DayDayAC.#include<iostream>#include<stdio.h>#include<cstdio>#include<stdli... 查看详情
2022.07.11暑假集训个人排位赛(代码片段)
2022.07.11暑假集训个人排位赛(六)赛后反省看着比之前都好,但是还是一般般吧。动态规划还是不熟练。继续加油。昨晚一晚没睡,打完cf太激动了,然后看了会手机看了会题就更加兴奋睡不着了。不补题了... 查看详情
2022.07.11暑假集训个人排位赛(代码片段)
2022.07.11暑假集训个人排位赛(六)赛后反省看着比之前都好,但是还是一般般吧。动态规划还是不熟练。继续加油。昨晚一晚没睡,打完cf太激动了,然后看了会手机看了会题就更加兴奋睡不着了。不补题了... 查看详情
2021软件创新实验室暑假集训总结篇
系列文章目录20级Java篇【2021软件创新实验室暑假集训】计算机的起源与大致原理【2021软件创新实验室暑假集训】Java基础(一)【2021软件创新实验室暑假集训】Java基础(二)【2021软件创新实验室暑假集训】Java基... 查看详情