关键词:
A水题,判断第一个,后面的全是0
#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 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-4; const int N=1000+10,maxn=500+100,inf=0x3f3f3f; int main() { ios::sync_with_stdio(false); cin.tie(0); ll a,b,n; cin>>a>>b>>n; for(ll j=0;j<=9;j++) if((a*10+j)%b==0) { a=a*10+j; cout<<a<<string(n-1,‘0‘)<<endl; return 0; } cout<<-1<<endl; return 0; } /********************* *********************/
B有点坑,wa了五发,找连续日期,注意2月28天
#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 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-4; const int N=1000+10,maxn=500+100,inf=0x3f3f3f; int mon[12]={31,28,31,30,31,30,31,31,30,31,30,31}; vector<pair<string,int> >m; void get(string s) { bool f=0; for(int i=0;i<m.size();i++) { if(m[i].first==s) { m[i].second++; f=1; break; } } if(!f)m.push_back(make_pair(s,1)); } inline bool isnum(char s) { return ‘0‘<=s&&s<=‘9‘; } int main() { ios::sync_with_stdio(false); cin.tie(0); string s,p; cin>>s; for(int i=0;i<s.size()-9;i++) { if(isnum(s[i])&&isnum(s[i+1])&&s[i+2]==‘-‘&&isnum(s[i+3])&& isnum(s[i+4])&&s[i+5]==‘-‘&&s[i+6]==‘2‘&&s[i+7]==‘0‘&&s[i+8]==‘1‘&&‘3‘<=s[i+9]&&s[i+9]<=‘5‘) { int day=(s[i]-‘0‘)*10+s[i+1]-‘0‘; int p=(s[i+3]-‘0‘)*10+s[i+4]-‘0‘-1; if(p>=0&&p<12) { if(day>0&&day<=mon[p]) { get(s.substr(i,10)); } } } } int ans=0; string anss; for(int i=0;i<m.size();i++) { // cout<<m[i].first<<" "<<m[i].second<<endl; if(m[i].second>ans) { ans=m[i].second; anss=m[i].first; } } cout<<anss<<endl; return 0; } /********************* *********************/
c模拟,找最小的那一个开始模拟,注意可能有多个最小值,但是算出来只有一个全为正数
#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 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-4; const int N=100000+10,maxn=500+100,inf=0x3f3f3f; ll a[N],n,b[N]; void getans(int x,ll dis) { for(int i=1;i<=n;i++)b[i]=a[i]; ll te=b[x]; b[x]+=(b[x]*n+dis); for(int i=1;i<=n;i++) b[i]-=te; while(dis--){ x++; if(x>n)x=1; b[x]--; } for(int i=1;i<=n;i++) if(b[i]<0) return ; for(int i=1;i<=n;i++) cout<<b[i]<<" "; cout<<endl; } int main() { ios::sync_with_stdio(false); cin.tie(0); ll k,minn=1e10; cin>>n>>k; for(int i=1;i<=n;i++) { cin>>a[i]; minn=min(minn,a[i]); } vector<int>v; for(int i=1;i<=n;i++) { if(a[i]==minn) { if(minn==0) { if(i+1<=n&&a[i+1]!=0)v.push_back(i); else if(i==n&&a[1]!=0)v.push_back(i); } else v.push_back(i); } } // cout<<v.size()<<endl; for(int i=0;i<v.size();i++) { ll dis=(k+n-v[i])%n; getans(v[i],dis); } return 0; } /********************* 3 2 0 3 3 3 1 2 0 4 3 3 2 3 1 3 1 1 0 0 *********************/
D贪心,先排序,然后挨个匹配
#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 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-4; const int N=100000+10,maxn=500+100,inf=0x3f3f3f; pair<int,int>v[2][N]; int vv[2]; int main() { ios::sync_with_stdio(false); cin.tie(0); int n; cin>>n; for(int i=1;i<=n;i++) { int c,s; cin>>c>>s; v[c][++vv[c]]=make_pair(s,i); } sort(v[0]+1,v[0]+1+vv[0]); sort(v[1]+1,v[1]+1+vv[1]); for(int i=1,j=1;i<=vv[0]&&j<=vv[1];) { int t=min(v[0][i].first,v[1][j].first); cout<<v[0][i].second<<" "<<v[1][j].second<<" "<<t<<endl; v[0][i].first-=t; v[1][j].first-=t; if(v[0][i].first)j++; else if(v[1][j].first)i++; else if(i<vv[0])i++; else j++; } return 0; } /********************* 2 0 0 1 0 5 1 11 0 9 1 4 0 4 0 2 *********************/
暑假集训cf50练之19
CodeforcesRound#388(Div.2)A水,总是忘记输出个数#include<map>#include<set>#include<cmath>#include<queue>#include<stack>#include<vector>#include<cstdio>#include<casser 查看详情
暑假集训cf50练之15
CodeForces402A水题,模拟#include<map>#include<set>#include<cmath>#include<queue>#include<stack>#include<vector>#include<cstdio>#include<cassert>#include<i 查看详情
暑假集训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.10暑假集训个人排位赛(代码片段)
2022.07.10暑假集训个人排位赛(五)赛后反省垫底了。两道思维题老是和自己错误的想法过不去,做题的时候还不够清醒。后面状态直接崩了。ProblemB出处HDU-5145题解不用莫队直接被卡常了。莫队+组合数学。每次添... 查看详情
暑假集训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... 查看详情
暑假集训day10
其实这是两天前的,我们假设现在是7月10号。今天主要学了矩阵快速幂和滑动窗口都比较容易实现矩阵快速幂:方块(Blocks)poj3734我们分为4中情况分别为a偶偶a[n+1]=2b[n]+c[n]+d[n]b奇奇b[n+1]=2a[n]+c[n]+d[n]c奇偶c[n+1]=2c[n]+a[n]+b[n]d偶... 查看详情
2022.07.11暑假集训个人排位赛(代码片段)
2022.07.11暑假集训个人排位赛(六)赛后反省看着比之前都好,但是还是一般般吧。动态规划还是不熟练。继续加油。昨晚一晚没睡,打完cf太激动了,然后看了会手机看了会题就更加兴奋睡不着了。不补题了... 查看详情
2022.07.11暑假集训个人排位赛(代码片段)
2022.07.11暑假集训个人排位赛(六)赛后反省看着比之前都好,但是还是一般般吧。动态规划还是不熟练。继续加油。昨晚一晚没睡,打完cf太激动了,然后看了会手机看了会题就更加兴奋睡不着了。不补题了... 查看详情
[暑假集训--数论]poj2034anti-primesequences
Givenasequenceofconsecutiveintegersn,n+1,n+2,...,m,ananti-primesequenceisarearrangementoftheseintegerssothateachadjacentpairofintegerssumstoacomposite(non-prime)number.Forexample,ifn=1andm=10,onesucha 查看详情
2021软件创新实验室暑假集训总结篇
系列文章目录20级Java篇【2021软件创新实验室暑假集训】计算机的起源与大致原理【2021软件创新实验室暑假集训】Java基础(一)【2021软件创新实验室暑假集训】Java基础(二)【2021软件创新实验室暑假集训】Java基... 查看详情