2018-2019 ACM-ICPC, China Multi-Provincial Collegiate Programming Contest
宁夏邀请赛的题,网络赛出锅之后来补了一下,还蛮有意思。题目地址:https://codeforces.com/gym/102222
A、给你一个栈和一堆pop、push操作,每次操作之后询问栈中的最大值,如果栈为空输出0
输入是给定的一个随机数生成器
每一次有元素进栈就把他与当前最大值比较,更新最大值之后把最大值压入另一个栈,pop时两个栈同时操作,每次输出另一个栈的栈顶即可
(这就是单调栈?)
代码:
#include <bits/stdc++.h> using namespace std; typedef long long ll;int t,n,p,q,m,Case=1; unsigned int SA,SB,SC; stack<unsigned int> mx; ll ans;unsigned int rng61(){SA^=SA<<16;SA^=SA>>5;SA^=SA<<1;unsigned int t=SA;SA=SB;SB=SC;SC^=t^SA;return SC; }void Push(unsigned int v){if(mx.empty()) mx.push(v);else mx.push(max(mx.top(),v)); }void Pop(){if(mx.empty()) return;mx.pop(); }void gen(){ans=0;scanf("%d%d%d%d%u%u%u",&n,&p,&q,&m,&SA,&SB,&SC);while(!mx.empty()) mx.pop();for(int i=1;i<=n;++i){if(rng61()%(p+q)<p)Push(rng61()%m+1);elsePop();if(!mx.empty()) ans^=((ll)i*mx.top());}printf("Case #%d: %lld\n",Case,ans); }int main(){scanf("%d",&t);for(;Case<=t;++Case)gen();return 0; }
B、给定一个多边形,一开始p[0]到p[1]这条边在一条直线上,然后不断逆时针旋转多边形使得p[i]到p[i+1]这条边落到直线上
当p[0]到p[1]再次落到直线上时停止旋转
问你多边形内的一个点在这个过程中走了多长
假设每一次旋转的弧度为alpha,画个图就能看出来alpha等于pi减去当前线段与下一条线段的夹角,用余弦定理算夹角就完事
如图:
代码:
#include <bits/stdc++.h> #define int long long #define sc(a) scanf("%lld",&a) #define scc(a,b) scanf("%lld %lld",&a,&b) #define sccc(a,b,c) scanf("%lld %lld %lld",&a,&b,&c) #define schar(a) scanf("%c",&a) #define pr(a) printf("%lld",a) #define fo(i,a,b) for(int i=a;i<b;++i) #define re(i,a,b) for(int i=a;i<=b;++i) #define rfo(i,a,b) for(int i=a;i>b;--i) #define rre(i,a,b) for(int i=a;i>=b;--i) #define prn() printf("\n") #define prs() printf(" ") #define mkp make_pair #define pii pair<int,int> #define pub(a) push_back(a) #define pob() pop_back() #define puf(a) push_front(a) #define pof() pop_front() #define fst first #define snd second #define frt front() #define bak back() #define mem0(a) memset(a,0,sizeof(a)) #define memmx(a) memset(a,0x3f3f,sizeof(a)) #define memmn(a) memset(a,-0x3f3f,sizeof(a)) #define debug #define db double #define yyes cout<<"YES"<<endl; #define nno cout<<"NO"<<endl; using namespace std; typedef vector<int> vei; typedef vector<pii> vep; typedef map<int,int> mpii; typedef map<char,int> mpci; typedef map<string,int> mpsi; typedef deque<int> deqi; typedef deque<char> deqc; typedef priority_queue<int> mxpq; typedef priority_queue<int,vector<int>,greater<int> > mnpq; typedef priority_queue<pii> mxpqii; typedef priority_queue<pii,vector<pii>,greater<pii> > mnpqii; const int maxn=500005; const int inf=0x3f3f3f3f3f3f3f3f; const int MOD=100000007; const db eps=1e-10; const db pi=3.1415926535; int qpow(int a,int b){int tmp=a%MOD,ans=1;while(b){if(b&1){ans*=tmp,ans%=MOD;}tmp*=tmp,tmp%=MOD,b>>=1;}return ans;} int lowbit(int x){return x&-x;} int max(int a,int b){return a>b?a:b;} int min(int a,int b){return a<b?a:b;} int mmax(int a,int b,int c){return max(a,max(b,c));} int mmin(int a,int b,int c){return min(a,min(b,c));} void mod(int &a){a+=MOD;a%=MOD;} bool chk(int now){} int half(int l,int r){while(l<=r){int m=(l+r)/2;if(chk(m))r=m-1;else l=m+1;}return l;} int ll(int p){return p<<1;} int rr(int p){return p<<1|1;} int mm(int l,int r){return (l+r)/2;} int lg(int x){if(x==0) return 1;return (int)log2(x)+1;} bool smleql(db a,db b){if(a<b||fabs(a-b)<=eps)return true;return false;} db len(db a,db b,db c,db d){return sqrt((a-c)*(a-c)+(b-d)*(b-d));} bool isp(int x){if(x==1)return false;if(x==2)return true;for(int i=2;i*i<=x;++i)if(x%i==0)return false;return true;}int t,n,Case=1; struct point{db x,y; }p[maxn],q;db len(point a,point b){return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)); }signed main(){ios_base::sync_with_stdio(0);cin.tie(0),cout.tie(0);sc(t);for(;Case<=t;++Case){db ans=0.0;sc(n);re(i,0,n-1) scanf("%lf%lf",&p[i].x,&p[i].y);p[n]=p[0],p[n+1]=p[1];scanf("%lf%lf",&q.x,&q.y);re(i,1,n){db a=len(p[i-1],p[i]);db b=len(p[i],p[i+1]);db c=len(p[i-1],p[i+1]);db alpha=acos((a*a+b*b-c*c)/(2.0*a*b));alpha=pi-alpha;ans+=alpha*len(q,p[i]);}printf("Case #%d: ",Case,ans);printf("%.3lf\n",ans);}return 0; }
C、给你三个小写字母字符串,第二个字符串是由第一个字符串的每一位加n再对26取余得到的
要求求出n,然后把第三个字符串每一位减n加26再对26取余,输出结果
按照题意搞就行
代码:
#include <bits/stdc++.h> #define int long long #define sc(a) scanf("%lld",&a) #define scc(a,b) scanf("%lld %lld",&a,&b) #define sccc(a,b,c) scanf("%lld %lld %lld",&a,&b,&c) #define schar(a) scanf("%c",&a) #define pr(a) printf("%lld",a) #define fo(i,a,b) for(int i=a;i<b;++i) #define re(i,a,b) for(int i=a;i<=b;++i) #define rfo(i,a,b) for(int i=a;i>b;--i) #define rre(i,a,b) for(int i=a;i>=b;--i) #define prn() printf("\n") #define prs() printf(" ") #define mkp make_pair #define pii pair<int,int> #define pub(a) push_back(a) #define pob() pop_back() #define puf(a) push_front(a) #define pof() pop_front() #define fst first #define snd second #define frt front() #define bak back() #define mem0(a) memset(a,0,sizeof(a)) #define memmx(a) memset(a,0x3f3f,sizeof(a)) #define memmn(a) memset(a,-0x3f3f,sizeof(a)) #define debug #define db double #define yyes cout<<"YES"<<endl; #define nno cout<<"NO"<<endl; using namespace std; typedef vector<int> vei; typedef vector<pii> vep; typedef map<int,int> mpii; typedef map<char,int> mpci; typedef map<string,int> mpsi; typedef deque<int> deqi; typedef deque<char> deqc; typedef priority_queue<int> mxpq; typedef priority_queue<int,vector<int>,greater<int> > mnpq; typedef priority_queue<pii> mxpqii; typedef priority_queue<pii,vector<pii>,greater<pii> > mnpqii; const int maxn=500005; const int inf=0x3f3f3f3f3f3f3f3f; const int MOD=100000007; const db eps=1e-10; int qpow(int a,int b){int tmp=a%MOD,ans=1;while(b){if(b&1){ans*=tmp,ans%=MOD;}tmp*=tmp,tmp%=MOD,b>>=1;}return ans;} int lowbit(int x){return x&-x;} int max(int a,int b){return a>b?a:b;} int min(int a,int b){return a<b?a:b;} int mmax(int a,int b,int c){return max(a,max(b,c));} int mmin(int a,int b,int c){return min(a,min(b,c));} void mod(int &a){a+=MOD;a%=MOD;} bool chk(int now){} int half(int l,int r){while(l<=r){int m=(l+r)/2;if(chk(m))r=m-1;else l=m+1;}return l;} int ll(int p){return p<<1;} int rr(int p){return p<<1|1;} int mm(int l,int r){return (l+r)/2;} int lg(int x){if(x==0) return 1;return (int)log2(x)+1;} bool smleql(db a,db b){if(a<b||fabs(a-b)<=eps)return true;return false;} db len(db a,db b,db c,db d){return sqrt((a-c)*(a-c)+(b-d)*(b-d));} bool isp(int x){if(x==1)return false;if(x==2)return true;for(int i=2;i*i<=x;++i)if(x%i==0)return false;return true;}int t,n,m; string s1,s2,s3;signed main(){ios_base::sync_with_stdio(0);cin.tie(0),cout.tie(0);cin>>t;re(jj,1,t){cin>>n>>m;cin>>s1>>s2>>s3;int dif=s2[0]-s1[0];fo(i,0,m){s3[i]=(s3[i]-'A'-dif+26)%26+'A';}cout<<"Case #"<<jj<<": "<<s3<<endl;}return 0; }
H、n只怪物,你对每只怪物的伤害是1、2、3、4,意味着每一次攻击怪物,你对这只怪物的伤害就会增加1
每攻击一次,所有存活的怪物都会对你造成伤害,现在你要挑选一个合适的攻击顺序,使得自己受到的伤害最小
首先考虑对单只怪物,一定要把它打倒再打下一只才更优,应当尽快减少怪物的数量
考虑经典的贪心策略,假设怪物a排在怪物b前面,那么应当满足下面的条件:
杀死怪物a的时间*(怪物a、b的攻击力)+(杀死怪物a、b的时间)*怪物b的攻击力
小于
杀死怪物b的时间*(怪物a、b的攻击力)+(杀死怪物a、b的时间)*怪物a的攻击力
写个排序函数搞一下完事。
代码:
#include <bits/stdc++.h> #define int long long #define sc(a) scanf("%lld",&a) #define scc(a,b) scanf("%lld %lld",&a,&b) #define sccc(a,b,c) scanf("%lld %lld %lld",&a,&b,&c) #define schar(a) scanf("%c",&a) #define pr(a) printf("%lld",a) #define fo(i,a,b) for(int i=a;i<b;++i) #define re(i,a,b) for(int i=a;i<=b;++i) #define rfo(i,a,b) for(int i=a;i>b;--i) #define rre(i,a,b) for(int i=a;i>=b;--i) #define prn() printf("\n") #define prs() printf(" ") #define mkp make_pair #define pii pair<int,int> #define pub(a) push_back(a) #define pob() pop_back() #define puf(a) push_front(a) #define pof() pop_front() #define fst first #define snd second #define frt front() #define bak back() #define mem0(a) memset(a,0,sizeof(a)) #define memmx(a) memset(a,0x3f3f,sizeof(a)) #define memmn(a) memset(a,-0x3f3f,sizeof(a)) #define debug #define db double #define yyes cout<<"YES"<<endl; #define nno cout<<"NO"<<endl; using namespace std; typedef vector<int> vei; typedef vector<pii> vep; typedef map<int,int> mpii; typedef map<char,int> mpci; typedef map<string,int> mpsi; typedef deque<int> deqi; typedef deque<char> deqc; typedef priority_queue<int> mxpq; typedef priority_queue<int,vector<int>,greater<int> > mnpq; typedef priority_queue<pii> mxpqii; typedef priority_queue<pii,vector<pii>,greater<pii> > mnpqii; const int maxn=500005; const int inf=0x3f3f3f3f3f3f3f3f; const int MOD=100000007; const db eps=1e-10; int qpow(int a,int b){int tmp=a%MOD,ans=1;while(b){if(b&1){ans*=tmp,ans%=MOD;}tmp*=tmp,tmp%=MOD,b>>=1;}return ans;} int lowbit(int x){return x&-x;} int max(int a,int b){return a>b?a:b;} int min(int a,int b){return a<b?a:b;} int mmax(int a,int b,int c){return max(a,max(b,c));} int mmin(int a,int b,int c){return min(a,min(b,c));} void mod(int &a){a+=MOD;a%=MOD;} bool chk(int now){} int half(int l,int r){while(l<=r){int m=(l+r)/2;if(chk(m))r=m-1;else l=m+1;}return l;} int ll(int p){return p<<1;} int rr(int p){return p<<1|1;} int mm(int l,int r){return (l+r)/2;} int lg(int x){if(x==0) return 1;return (int)log2(x)+1;} bool smleql(db a,db b){if(a<b||fabs(a-b)<=eps)return true;return false;} db len(db a,db b,db c,db d){return sqrt((a-c)*(a-c)+(b-d)*(b-d));} bool isp(int x){if(x==1)return false;if(x==2)return true;for(int i=2;i*i<=x;++i)if(x%i==0)return false;return true;}int t,n; int Case=1; vei v; struct node{int hp,atk; }o[maxn];bool cmp(node a,node b){int p1=lower_bound(v.begin(),v.end(),a.hp)-v.begin()+1;int p2=lower_bound(v.begin(),v.end(),b.hp)-v.begin()+1;return a.atk*p1+b.atk*(p1+p2)<b.atk*p2+a.atk*(p1+p2); }signed main(){ios_base::sync_with_stdio(0);cin.tie(0),cout.tie(0);sc(t);re(i,1,10000) v.pub((1+i)*i/2);for(;Case<=t;++Case){int ans=0,sum=0;sc(n);re(i,1,n) scc(o[i].hp,o[i].atk),sum+=o[i].atk;sort(o+1,o+1+n,cmp);re(i,1,n){int p=lower_bound(v.begin(),v.end(),o[i].hp)-v.begin()+1;ans+=sum*p;sum-=o[i].atk;}printf("Case #%lld: %lld\n",Case,ans);}return 0; }
D、题意比较抽象
第一小问,n个人上飞机,第i个人本来应该坐在第i个位置
现在第一个人票丢了,他会随机选择一个座位
从第二个人开始,如果他本来的位置上没人,他就会坐本来的位置,否则他也会随机选择一个座位
第一问是问第n个人坐到本来的位置的概率是多少
不妨假设f(x)表示x个人时候的答案
考虑只有一个人的情况:
他必定坐回一号位,概率为1.0,即f(1)=1
考虑只有两个人的情况:
如果第一个人坐了一号位,第二人必坐二号位;如果第一个人坐了二号位,那么第二人必坐一号位,概率为0.5,f(2)=0.5
接下来考虑f(3):
如果第一个人坐了一号位,概率为1.0
如果第一个人坐了二号位,相当于第二个人变成了第一个人,概率为f(2)
如果第一个人坐了三号位,无论如何最后一个人也不会坐回原来的位置,概率为0
所以f(3)=1*1/3+f(2)*1/3+0*1/3=0.5
实际上对于任意的f(x),f(x)=1*1/x+f(2)*1/x+...+f(x-1)*1/x+0*1/x=0.5
这意味着第一个人坐到哪个位置上了,那么答案就等于f(从那个位置开始的人数)
第二问是说上飞机顺序随机,意味着不一定第一个人没票
考虑没票的人在第几个位置上飞机,如果他在最后一个位置上飞机,概率为1,否则为0.5
剩下的人上机顺序按照全排列搞就完事了,一共有m!种方案
式子列出来大概长这样:
1*(m-1)!+0.5*(m-1)*(m-1)! / m!
化简得出答案是(m+1)/2*m
代码:
#include <bits/stdc++.h> #define int long long #define sc(a) scanf("%lld",&a) #define scc(a,b) scanf("%lld %lld",&a,&b) #define sccc(a,b,c) scanf("%lld %lld %lld",&a,&b,&c) #define schar(a) scanf("%c",&a) #define pr(a) printf("%lld",a) #define fo(i,a,b) for(int i=a;i<b;++i) #define re(i,a,b) for(int i=a;i<=b;++i) #define rfo(i,a,b) for(int i=a;i>b;--i) #define rre(i,a,b) for(int i=a;i>=b;--i) #define prn() printf("\n") #define prs() printf(" ") #define mkp make_pair #define pii pair<int,int> #define pub(a) push_back(a) #define pob() pop_back() #define puf(a) push_front(a) #define pof() pop_front() #define fst first #define snd second #define frt front() #define bak back() #define mem0(a) memset(a,0,sizeof(a)) #define memmx(a) memset(a,0x3f3f,sizeof(a)) #define memmn(a) memset(a,-0x3f3f,sizeof(a)) #define debug #define db double #define yyes cout<<"YES"<<endl; #define nno cout<<"NO"<<endl; using namespace std; typedef vector<int> vei; typedef vector<pii> vep; typedef map<int,int> mpii; typedef map<char,int> mpci; typedef map<string,int> mpsi; typedef deque<int> deqi; typedef deque<char> deqc; typedef priority_queue<int> mxpq; typedef priority_queue<int,vector<int>,greater<int> > mnpq; typedef priority_queue<pii> mxpqii; typedef priority_queue<pii,vector<pii>,greater<pii> > mnpqii; const int maxn=500005; const int inf=0x3f3f3f3f3f3f3f3f; const int MOD=100000007; const db eps=1e-10; int qpow(int a,int b){int tmp=a%MOD,ans=1;while(b){if(b&1){ans*=tmp,ans%=MOD;}tmp*=tmp,tmp%=MOD,b>>=1;}return ans;} int lowbit(int x){return x&-x;} int max(int a,int b){return a>b?a:b;} int min(int a,int b){return a<b?a:b;} int mmax(int a,int b,int c){return max(a,max(b,c));} int mmin(int a,int b,int c){return min(a,min(b,c));} void mod(int &a){a+=MOD;a%=MOD;} bool chk(int now){} int half(int l,int r){while(l<=r){int m=(l+r)/2;if(chk(m))r=m-1;else l=m+1;}return l;} int ll(int p){return p<<1;} int rr(int p){return p<<1|1;} int mm(int l,int r){return (l+r)/2;} int lg(int x){if(x==0) return 1;return (int)log2(x)+1;} bool smleql(db a,db b){if(a<b||fabs(a-b)<=eps)return true;return false;} db len(db a,db b,db c,db d){return sqrt((a-c)*(a-c)+(b-d)*(b-d));} bool isp(int x){if(x==1)return false;if(x==2)return true;for(int i=2;i*i<=x;++i)if(x%i==0)return false;return true;}int t,Case=1,n,m;signed main(){ios_base::sync_with_stdio(0);cin.tie(0),cout.tie(0);sc(t);for(;Case<=t;++Case){db ansa,ansb;scc(n,m);if(n==1) ansa=1.0;else ansa=0.5;if(m==1) ansb=1.0;else ansb=(m+1.0)/(2.0*m);printf("Case #%d: ",Case);printf("%.6lf %.6lf\n",ansa,ansb);}return 0; }
F、点有点权,边有边权,无向图,q个询问,每次询问从u到v的不经过点权大于w的点的最短路径长度(u和v的点权不考虑在内)
数据以邻接矩阵的形式给出,保证自己到自己的距离为0
首先任意两点一定是可达的,直接从起点走到终点完事,起点终点的点权都可以忽略
接下来考虑到n<200,估计floyd可以搞一搞
假设dp[k][i][j]表示在经过前k个点权最小的点的情况下,i到j的最短距离
那么先要把点权离散化一下,找到每个点对应点权的排名,ord[i]代表排名为i的点原来的编号,用pair按照第一维排序就行
对于每个询问,二分找到小于等于它的最大点权对应点的排名,输出dp[排名][x][y]即可
考虑转移方程:
dp[k][i][j]=min(dp[k-1][i][j],dp[k-1][i][mid]+dp[k-1][mid][j]);
其中mid代表排名为k的点编号,实际上也很好理解,对每个点枚举它做为中点,更新答案,只不过floyd起到了保存不同版本的最短路的作用罢了
并且dp[0][i][j]就代表原本两点间的距离
别忘了对原来的r数组排个序,否则二分的时候会出锅
代码:
#include <bits/stdc++.h> #define int long long #define sc(a) scanf("%lld",&a) #define scc(a,b) scanf("%lld %lld",&a,&b) #define sccc(a,b,c) scanf("%lld %lld %lld",&a,&b,&c) #define schar(a) scanf("%c",&a) #define pr(a) printf("%lld",a) #define fo(i,a,b) for(int i=a;i<b;++i) #define re(i,a,b) for(int i=a;i<=b;++i) #define rfo(i,a,b) for(int i=a;i>b;--i) #define rre(i,a,b) for(int i=a;i>=b;--i) #define prn() printf("\n") #define prs() printf(" ") #define mkp make_pair #define pii pair<int,int> #define pub(a) push_back(a) #define pob() pop_back() #define puf(a) push_front(a) #define pof() pop_front() #define fst first #define snd second #define frt front() #define bak back() #define mem0(a) memset(a,0,sizeof(a)) #define memmx(a) memset(a,0x3f3f,sizeof(a)) #define memmn(a) memset(a,-0x3f3f,sizeof(a)) #define debug #define db double #define yyes cout<<"YES"<<endl; #define nno cout<<"NO"<<endl; using namespace std; typedef vector<int> vei; typedef vector<pii> vep; typedef map<int,int> mpii; typedef map<char,int> mpci; typedef map<string,int> mpsi; typedef deque<int> deqi; typedef deque<char> deqc; typedef priority_queue<int> mxpq; typedef priority_queue<int,vector<int>,greater<int> > mnpq; typedef priority_queue<pii> mxpqii; typedef priority_queue<pii,vector<pii>,greater<pii> > mnpqii; const int maxn=500005; const int inf=0x3f3f3f3f3f3f3f3f; const int MOD=100000007; const db eps=1e-10; int qpow(int a,int b){int tmp=a%MOD,ans=1;while(b){if(b&1){ans*=tmp,ans%=MOD;}tmp*=tmp,tmp%=MOD,b>>=1;}return ans;} int lowbit(int x){return x&-x;} int max(int a,int b){return a>b?a:b;} int min(int a,int b){return a<b?a:b;} int mmax(int a,int b,int c){return max(a,max(b,c));} int mmin(int a,int b,int c){return min(a,min(b,c));} void mod(int &a){a+=MOD;a%=MOD;} bool chk(int now){} int half(int l,int r){while(l<=r){int m=(l+r)/2;if(chk(m))r=m-1;else l=m+1;}return l;} int ll(int p){return p<<1;} int rr(int p){return p<<1|1;} int mm(int l,int r){return (l+r)/2;} int lg(int x){if(x==0) return 1;return (int)log2(x)+1;} bool smleql(db a,db b){if(a<b||fabs(a-b)<=eps)return true;return false;} db len(db a,db b,db c,db d){return sqrt((a-c)*(a-c)+(b-d)*(b-d));} bool isp(int x){if(x==1)return false;if(x==2)return true;for(int i=2;i*i<=x;++i)if(x%i==0)return false;return true;}int t,n,q,x,y,w; int r[205],ord[205]; int dp[205][205][205]; vector<pii> v;void floyd(){re(k,1,n){int mid=ord[k];re(i,1,n){re(j,1,n){dp[k][i][j]=min(dp[k-1][i][j],dp[k-1][i][mid]+dp[k-1][mid][j]);}}} }signed main(){ios_base::sync_with_stdio(0);cin.tie(0),cout.tie(0);cin>>t;re(Case,1,t){cin>>n>>q;v.clear();memmx(dp);re(i,1,n) cin>>r[i],v.pub(mkp(r[i],i));re(i,1,n) re(j,1,n) cin>>dp[0][i][j];sort(v.begin(),v.end());sort(r+1,r+1+n);re(i,1,n) ord[i]=v[i-1].snd;floyd();cout<<"Case #"<<Case<<":\n";while(q--){cin>>x>>y>>w;int p=upper_bound(r+1,r+1+n,w)-r;p--;cout<<dp[p][x][y]<<endl;}}return 0; }
转载于:https://www.cnblogs.com/oneman233/p/11475234.html
2018-2019 ACM-ICPC, China Multi-Provincial Collegiate Programming Contest相关推荐
- 「团队训练赛」The 14th Jilin Provincial Collegiate Programming Contest「ABCEFGJLM」
The 14th Jilin Provincial Collegiate Programming Contest A. Chord 题目描述: 给出C, C#, D, D#, E, F, F#, G, ...
- The 15th Jilin Provincial Collegiate Programming Contest
The 15th Jilin Provincial Collegiate Programming Contest A. Random Number Checker 签到 #include <bi ...
- The 16th Heilongjiang Provincial Collegiate Programming Contest部分题解
The 16th Heilongjiang Provincial Collegiate Programming Contest 目录 D - Doin' Time 题目思路 题目代码 F - Func ...
- The 15th Heilongjiang Provincial Collegiate Programming Contest题解 gym102803
The 15th Heilongjiang Provincial Collegiate Programming Contest题解 gym102803 前言 题目 A. August B. Bills ...
- The 15th Heilongjiang Provincial Collegiate Programming Contest (A、G、H、L)
The 15th Heilongjiang Provincial Collegiate Programming Contest A. August G. Goodbye H. Hate That Yo ...
- 2019 浙江省赛部分题解(The 16th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple)
签到题 GLucky 7 in the Pocket Time Limit: 1 Second Memory Limit: 65536 KB BaoBao loves number 7 bu ...
- The 10th Shandong Provincial Collegiate Programming Contest 2019山东省赛游记+解题报告
比赛结束了几天...这篇博客其实比完就想写了...但是想等补完可做题顺便po上题解... 5.10晚的动车到了济南,没带外套有点凉.酒店还不错. 5.11早上去报道,济南大学好大啊...感觉走了一个世 ...
- HZNU Training 2 for Zhejiang Provincial Collegiate Programming Contest 2019
赛后总结: T:今天下午参加了答辩比赛,没有给予队友很大的帮助.远程做题的时候发现队友在H上遇到了挫折,然后我就和她们说我看H吧,她们就开始做了另外两道题.今天一人一道题.最后我们在研究一道dp的时候 ...
- HZNU Training 4 for Zhejiang Provincial Collegiate Programming Contest 2019
今日这场比赛我们准备的题比较全面,二分+数论+最短路+计算几何+dp+思维+签到题等.有较难的防AK题,也有简单的签到题.为大家准备了一份题解和AC代码. A - Meeting with Alien ...
- The 16th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple
Problem A Vertices in the Pocket 比赛地址:http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?proble ...
最新文章
- java 日期的加减_用java实现日期类的加减
- Confluence 6 授权
- codeigniter文件上传问题
- 白盒测试基本路径生成工具_基于基本最短路径列生成的车辆路径问题
- 如何:使用Json插入数据库并从中读取
- 1、Linux命令随笔
- (二十六)【2021 WWW】Knowledge-Preserving Incremental Social Event Detection via Heterogeneous GNNs
- 迷宫问题python实现
- 机器学习笔记-LightGBM
- 编写一个matlab矩阵函数,MATLAB矩阵 及图像函数
- java中的Date类
- 学习笔记|JSP教程|菜鸟教程
- 正则 纳税号_正则表达式号码靓号类型判断代码
- c语言常用基础代码大全,C语言基础入门必读
- ubuntu报错:RuntimeError : unexcepted EOF, excepted 2599001 more bytes. The file might be corrupted.
- 快消品行业B2B电商平台解决方案
- Java笔试 系列一
- hexo主题之hexo-theme-yilia-plus
- 使用分布式图计算系统实现研报关键词权重分数计算性能提升百倍以上
- 【2021最新】各大公司招聘官网链接汇总(持续更新中)