概述
A题
http://codeforces.com/contest/950/problem/A
题意:给定三个数l,r,a,要我们求min(l+a1,r+a2)的最大值再乘以2;a1+a2<=a。
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 typedef long long ll; 5 const int maxn=1e5+10; 6 7 int l,r,a; 8 9 int main() 10 { 11 while(scanf("%d %d %d",&l,&r,&a)!=EOF) 12 { 13 if(l>r) 14 swap(l,r); 15 int t=r-l; 16 if(t>=a) 17 { 18 printf("%dn",2*(l+a)); 19 } 20 else if(t<a) 21 { 22 a=a-t; 23 a=a/2; 24 printf("%dn",2*(r+a)); 25 } 26 } 27 return 0; 28 }
B题
http://codeforces.com/contest/950/problem/B
题意:给定两个数组x[],y[](∑xi=∑yi),从x数组中选择连续的几个数求和,让它等于从y数组中选择出连续的几个数的和(选取过的数不能在选择),问最大能有多少中匹配方法!
其实从给出的数据来推导比看题意更容易明白-.v.-。看题意没有看数据容易明白点。
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 typedef long long ll; 5 const int maxn=1e5+10; 6 7 int n,m; 8 int x[maxn],y[maxn]; 9 int main() 10 { 11 scanf("%d %d",&n,&m); 12 for(int i=1; i<=n; i++) 13 { 14 scanf("%d",&x[i]); 15 } 16 for(int i=1; i<=m; i++) 17 { 18 scanf("%d",&y[i]); 19 } 20 int a=x[1],b=y[1]; 21 22 int ans=0; 23 24 for(int i=1,j=1; i<=n;) 25 { 26 if(a==b) 27 { 28 i++,j++; 29 ans++; 30 a=x[i]; 31 b=y[j]; 32 continue; 33 } 34 if(a<b) 35 { 36 i++; 37 a+=x[i]; 38 } 39 if(a>b) 40 { 41 j++; 42 b+=y[j]; 43 } 44 } 45 printf("%dn",ans); 46 return 0; 47 }
A/B这两道题比较水,所以一起发出来,等会在苦述悲催的C题把!~ !
转载于:https://www.cnblogs.com/Y-Meng/p/8538601.html
最后
以上就是平常月亮为你收集整理的Codeforces Round #469 (Div. 2) A/B的全部内容,希望文章能够帮你解决Codeforces Round #469 (Div. 2) A/B所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复