【Codeforces】Round #376 (Div. 2)
2016-10-18 14:57
351 查看
http://codeforces.com/contest/731
不发题面了,自己点链接
总结一下
考场上
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/17/003c7eaf9cd60ce01b310a315d1578b9.jpg)
原以为这次要加很多raiting。。。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/17/11c2f714221e87af558148c5a966cf1c.jpg)
但FST狗记邓,只加了58rating
总结一下
ABC切得很快(保持)
B题WA了2发不应该,没有想清楚
F题写了大暴力,但不优美,虽然过了P,但就没有想了,很严重问题,得意忘形,虽然知道FST,但有侥幸心里,真正考试就完了
以为拿到了分就不干事了,严重问题,真正考试一定要写暴力拍
后来没有干事,既没有hack又没有去写DE不应该
Solution:Greedy+递推,考虑一天,奇数的话必须要用第一种方式,那就之后那天要买一个,几个flag即可,一路推过去,<0不合法,偶数的话直接用第二种→ 贪心,不用麻烦后面那天。
反思:居然wa了两发,7~80分啊。。(notice 最后一次是否要之后填充,flag清空)
显然并查集,然后贪心,一个联通块内的颜色要全相同,Greedy-找出颜色已经相同的最多数目,答案加上其他要改的即可
CF给的标签:brute force(暴力)implementation(实现)number theory(数论)-醉了
F是个送肉题。。。FST。。。。
直接看代码吧
暴力也分优美与垃圾
TLE on Test 23(P都过了,2×10^5都过了,结果FST,10^4没过)-暴力加break
AC-暴力+统计
不发题面了,自己点链接
总结一下
考场上
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/17/003c7eaf9cd60ce01b310a315d1578b9.jpg)
原以为这次要加很多raiting。。。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/17/11c2f714221e87af558148c5a966cf1c.jpg)
但FST狗记邓,只加了58rating
总结一下
ABC切得很快(保持)
B题WA了2发不应该,没有想清楚
F题写了大暴力,但不优美,虽然过了P,但就没有想了,很严重问题,得意忘形,虽然知道FST,但有侥幸心里,真正考试就完了
以为拿到了分就不干事了,严重问题,真正考试一定要写暴力拍
后来没有干事,既没有hack又没有去写DE不应该
A Night at the Museum
Solution:Implementation,String// <A.cpp> - Sun Oct 16 17:45:40 2016 // This file is made by YJinpeng,created by XuYike's black technology automatically. // Copyright (C) 2016 ChangJun High School, Inc. // I don't know what this program is. #include <iostream> #include <vector> #include <algorithm> #include <cstring> #include <cstdio> #include <cstdlib> #include <cmath> #define MOD 1000000007 #define INF 1e9 using namespace std; typedef long long LL; const int MAXN=110; inline int gi() { register int w=0,q=0;register char ch=getchar(); while((ch<'0'||ch>'9')&&ch!='-')ch=getchar(); if(ch=='-')q=1,ch=getchar(); while(ch>='0'&&ch<='9')w=w*10+ch-'0',ch=getchar(); return q?-w:w; } char s[MAXN]; int main() { freopen("A.in","r",stdin); freopen("A.out","w",stdout); scanf("%s",s);int l=strlen(s); char ch='a';int ans=0; for(int i=0;i<l;i++) ans+=min((s[i]-ch+26)%26,(ch-s[i]+26)%26),ch=s[i]; printf("%d",ans); return 0; }
B Coupons and Discounts
题目大意:每天要买a[i]个东西,买的方式有两种:两天一天买一个 or 一天买两个,问是否有合法方案Solution:Greedy+递推,考虑一天,奇数的话必须要用第一种方式,那就之后那天要买一个,几个flag即可,一路推过去,<0不合法,偶数的话直接用第二种→ 贪心,不用麻烦后面那天。
反思:居然wa了两发,7~80分啊。。(notice 最后一次是否要之后填充,flag清空)
// <B.cpp> - Sun Oct 16 17:45:40 2016 // This file is made by YJinpeng,created by XuYike's black technology automatically. // Copyright (C) 2016 ChangJun High School, Inc. // I don't know what this program is. #include <iostream> #include <vector> #include <algorithm> #include <cstring> #include <cstdio> #include <cstdlib> #include <cmath> #define MOD 1000000007 #define INF 1e9 using namespace std; typedef long long LL; const int MAXN=100010; const int MAXM=100010; inline int gi() { register int w=0,q=0;register char ch=getchar(); while((ch<'0'||ch>'9')&&ch!='-')ch=getchar(); if(ch=='-')q=1,ch=getchar(); while(ch>='0'&&ch<='9')w=w*10+ch-'0',ch=getchar(); return q?-w:w; } void pri(){printf("NO");exit(0);} int main() { freopen("B.in","r",stdin); freopen("B.out","w",stdout); int n=gi(),last=0; for(int i=1;i<=n;i++){ int x=gi()-last; if(x<0)pri(); if(x&1)last=1;else last=0; }if(last)pri();else printf("YES"); return 0; }
C Socks
有n只袜子,每只袜子有一个颜色,有一些约束(即某天的左右两边袜子颜色要相同),然后问你最少要改多少只?显然并查集,然后贪心,一个联通块内的颜色要全相同,Greedy-找出颜色已经相同的最多数目,答案加上其他要改的即可
// <C.cpp> - Sun Oct 16 17:45:40 2016 // This file is made by YJinpeng,created by XuYike's black technology automatically. // Copyright (C) 2016 ChangJun High School, Inc. // I don't know what this program is. #include <iostream> #include <vector> #include <algorithm> #include <cstring> #include <cstdio> #include <cstdlib> #include <cmath> #define MOD 1000000007 #define INF 1e9 using namespace std; typedef long long LL; const int MAXN=200010; inline int gi() { register int w=0,q=0;register char ch=getchar(); while((ch<'0'||ch>'9')&&ch!='-')ch=getchar(); if(ch=='-')q=1,ch=getchar(); while(ch>='0'&&ch<='9')w=w*10+ch-'0',ch=getchar(); return q?-w:w; } int f[MAXN],a[MAXN],c[MAXN];vector<int>b[MAXN]; int find(int x){return f[x]==x?x:f[x]=find(f[x]);} int main() { freopen("C.in","r",stdin); freopen("C.out","w",stdout); int n=gi(),m=gi(),k=gi(),ans=0;k++; for(int i=1;i<=n;i++)a[i]=gi(),f[i]=i; while(m--){ int l=gi(),r=gi(); if(find(l)!=find(r))f[f[l]]=f[r]; } for(int i=1;i<=n;i++) b[find(i)].push_back(i); for(int i=1;i<=n;i++){ if(f[i]!=i)continue;int now=0; for(int j=0,to=b[i].size();j<to;j++){ c[a[b[i][j]]]++; if(c[a[b[i][j]]]>now)now=c[a[b[i][j]]]; } ans+=b[i].size()-now; for(int j=0,to=b[i].size();j<to;j++)c[a[b[i][j]]]--; }printf("%d",ans); return 0; }
D
挖坑~E
挖坑~F Video Cards
给你一列数a[],选择一个标准,使得其他的数减小至他的倍数,使得和最大?CF给的标签:brute force(暴力)implementation(实现)number theory(数论)-醉了
F是个送肉题。。。FST。。。。
直接看代码吧
暴力也分优美与垃圾
TLE on Test 23(P都过了,2×10^5都过了,结果FST,10^4没过)-暴力加break
// <F.cpp> - Sun Oct 16 17:45:40 2016 // This file is made by YJinpeng,created by XuYike's black technology automatically. // Copyright (C) 2016 ChangJun High School, Inc. // I don't know what this program is. #include <iostream> #include <vector> #include <algorithm> #include <cstring> #include <cstdio> #include <cstdlib> #include <cmath> using namespace std; typedef long long LL; const int MAXN=200010; inline int gi() { register int w=0,q=0;register char ch=getchar(); while((ch<'0'||ch>'9')&&ch!='-')ch=getchar(); if(ch=='-')q=1,ch=getchar(); while(ch>='0'&&ch<='9')w=w*10+ch-'0',ch=getchar(); return q?-w:w; } int a[MAXN];LL f[MAXN]; int main() { int n=gi();LL ans=0; for(int i=1;i<=n;i++)a[i]=gi(); sort(a+1,a+1+n); for(int i=1;i<=n;i++)f[i]=f[i-1]+a[i]; for(int i=1;i<=n;i++){ LL now=a[i]; for(int j=n;j>i;j--){ if(now+f[j]-f[i]<=ans)break; now+=a[j]/a[i]*a[i]; } if(now>ans)ans=now; }printf("%I64d",ans); return 0; }
AC-暴力+统计
// <F.cpp> - Sun Oct 16 17:45:40 2016 // This file is made by YJinpeng,created by XuYike's black technology automatically. // Copyright (C) 2016 ChangJun High School, Inc. // I don't know what this program is. #include <iostream> #include <vector> #include <algorithm> #include <cstring> #include <cstdio> #include <cstdlib> #include <cmath> using namespace std; typedef long long LL; const int MAXN=200001; inline int gi() { register int w=0,q=0;register char ch=getchar(); while((ch<'0'||ch>'9')&&ch!='-')ch=getchar(); if(ch=='-')q=1,ch=getchar(); while(ch>='0'&&ch<='9')w=w*10+ch-'0',ch=getchar(); return q?-w:w; } LL s[MAXN];int a[MAXN]; int main() { freopen("F.in","r",stdin); freopen("F.out","w",stdout); int n=gi();LL ans=0; for(int i=1;i<=n;i++)a[gi()]++; for(int i=1;i<MAXN;i++)s[i]=s[i-1]+a[i]; for(int i=1;i<MAXN;i++) if(a[i]){ LL now=0;int t=MAXN/i; for(int j=1;j<t;j++) now+=1LL*(s[i*(j+1)-1]-s[i*j-1])*j*i; now+=1LL*(s[MAXN-1]-s[i*t-1])*i*t; if(now>ans)ans=now; } printf("%lld",ans); return 0; }
相关文章推荐
- 第四次codeforces竞技结束 #FF(#255) Div 2
- 【CodeForces】CodeForces Round #460 (Div. 2) 题解
- 第六次codeforces竞技结束 #257 Div 2
- codeforces 155 Div2 B
- codeforces水题100道 第十二题 Codeforces Beta Round #91 (Div. 2 Only) A. Lucky Division (brute force)
- [Codeforces] Round #286 (Div. 2) A、B
- Codeforces - 277.5 (Div. 2)C - Given Length and Sum of Digits...(模拟 or dfs)
- 【Codeforces Round #411 (Div. 1)】Codeforces 804C Ice cream coloring
- [广义后缀自动机] BZOJ 3473 字符串 & BZOJ 3277 串 & Codeforces 204E #129 (Div. 1) E. Little Elephant and Strings
- 【Codeforces Round #196 (Div. 1)】Codeforces 338D GCD Table
- 第八次codeforces竞技结束 #259 Div 2
- codeforces 163 Div2 A
- 【codeforces】Codeforces Round #366 (Div. 2)
- CodeForces 839D - Winter is here | Codeforces Round #428 (Div. 2)
- Codeforces Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) A. Checking the Calendar(水题)
- codeforces 428(div2) A-D
- 【Codeforces Round #398 (Div. 2)】Codeforces 767B The Queue
- [构造] Codeforces 804E Round #411 (Div. 1) E. The same permutation
- codeforces 204(Div.1 A) Little Elephant and Interval(贪心)
- Codeforces 889B (Codeforces Round #445 Div. 1) Restoration of string 图论