Codeforces Hello 2018
2018-01-09 08:46
399 查看
CF913A Modular Exponentiation(模拟)
#include <bits/stdc++.h> using namespace std; #define ll long long #define inf 0x3f3f3f3f #define N 1010 inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return x*f; } int n,m,x; int main(){ // freopen("a.in","r",stdin); n=read();m=read();x=1;bool flag=1; for(int i=1;i<=n;++i){ x<<=1;if(x>m){flag=0;break;} }if(flag) printf("%d\n",m%x); else printf("%d\n",m); return 0; }
CF913B Christmas Spruce(树)
#include <bits/stdc++.h> using namespace std; #define ll long long #define inf 0x3f3f3f3f #define N 1010 inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return x*f; } int n; vector<int>son ; inline bool dfs(int x){ int res=0; for(int i=0;i<son[x].size();++i){ int y=son[x][i]; if(!son[y].size()) res++; else if(!dfs(y)) return 0; }if(res<3) return 0;return 1; } int main(){ // freopen("a.in","r",stdin); n=read(); for(int i=2;i<=n;++i){ int x=read();son[x].push_back(i); }if(dfs(1)) puts("Yes"); else puts("No"); return 0; }
CF913C Party Lemonade(贪心+dp)
#include <bits/stdc++.h> using namespace std; #define ll long long #define inf 1LL<<60 #define N 35 inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return x*f; } int n,K,a ,bin ,last; bool del ; inline ll dfs(int i){ if(i==-1) return inf; if(del[i]) return dfs(i-1); ll res=(ll)K/bin[i]*a[i];K%=bin[i]; if(K) res+=min(dfs(i-1),(ll)a[i]); return res; } int main(){ // freopen("a.in","r",stdin); n=read();K=read();bin[0]=1; for(int i=1;i<=n;++i) bin[i]=bin[i-1]<<1; for(int i=0;i<n;++i) a[i]=read(); for(int i=0;i<n;++i){ if(del[i]) continue; for(int j=i+1;j<n;++j){ if(a[j]<=a[i]){del[i]=1;break;} if(a[j]>=(ll)a[i]*bin[j-i]) del[j]=1; } }printf("%I64d\n",dfs(n-1)); return 0; }
CF913D Too Easy Problems(二分答案+贪心)
#include <bits/stdc++.h> using namespace std; #define ll long long #define inf 0x3f3f3f3f #define N 200010 inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return x*f; } int n,T; struct data{ int cnt,x,id; }a ; inline bool cmp(data x,data y){return x.x<y.x;} inline bool jud(int x){ int tot=0,t=0; if(x==0) return 1; for(int i=1;i<=n;++i){ if(a[i].cnt<x) continue; t+=a[i].x;if(t>T) return 0;++tot; if(tot>=x) return 1; }return 0; } int main(){ // freopen("a.in","r",stdin); n=read();T=read(); for(int i=1;i<=n;++i) a[i].cnt=read(),a[i].x=read(),a[i].id=i; sort(a+1,a+n+1,cmp); int l=0,r=n; while(l<=r){ int mid=l+r>>1; if(jud(mid)) l=mid+1; else r=mid-1; }int ans=l-1,tot=0; printf("%d\n%d\n",ans,ans); if(ans==0) puts(""); else for(int i=1;i<=n;++i){ if(a[i].cnt<l-1) continue;++tot; printf("%d ",a[i].id);if(tot>=ans){puts("");break;} }return 0; }
相关文章推荐
- Codeforces Hello 2018 - D - Too Easy Problems
- Codeforces Hello 2018 C. Party Lemonade(思维)
- codeforces Hello 2018(A-E)
- Codeforces Hello 2018——Party Lemonade(DP)
- codeforces Hello 2018 B. Christmas Spruce
- Codeforces Hello 2018 D. Too Easy Problems (二分)
- codeforces Hello 2018(A-E)
- codeforces Hello 2018(A-E)
- codeforces Hello 2018(A-E)
- codeforces Hello 2018(A-E)
- codeforces Hello 2018 C. Party Lemonade(贪心)
- codeforces Hello 2018 C. Party Lemonade(DP+思维)
- Codeforces Hello 2018
- Codeforces Hello 2018 C. Party Lemonade 贪心、优先队列
- Codeforces Hello 2018 [ABC]
- Christmas Spruce—codeforces(hello_2018)
- codeforces Hello 2018(A-E)
- Codeforces Hello 2018 - A - Modular Exponentiation
- Codeforces Hello 2018
- codeforces Hello 2018(A-E)