本文主要是介绍Codeforces Round #118 (Div. 2),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
A 题 :
题意理解有误 ,贡献 1 WA 查找
巨水一题: 两个不同的字符判断即可
B 题 :
粗心写cmp 时 对 第二的排序 写成第一个了
排序水题,sort 搞定
C题 :数学推断+幂取模
规律: f[n]=2^n-1 + 2^n-1*2^n;
在推导过程竟然忘了 多项式 可以用除的技巧,-->__<--
#include<stdio.h>
#define mod 1000000007
int Q_pow(__int64 n)
{if(n==0) return 1;if(n==1) return 2;__int64 sum=Q_pow(n/2);if(n%2) return (sum*sum*2)%mod;return (sum*sum)%mod;
}
int main()
{__int64 n;scanf("%I64d",&n);if(n==0) puts("1");else {__int64 sum=Q_pow(n-1);__int64 max=(sum+(sum*sum*2)%mod)%mod;printf("%I64d\n",max);}return 0;
}
D题 :
S 和 A B C 四个数 求x^a*y^b*z^c 最大(x +y+z<=s)
据说可以用三分搜索做,表示不会;
但是 有听说了,有定理 首先感谢ACShiyu
用拉格朗日函数可以证明,如下
http://www.science-mathematics.com/Mathematics/201110/16848.htm
#include<stdio.h>int main(){int s,a,b,c;scanf("%d%d%d%d",&s,&a,&b,&c);if(a==0&&b==0&&c==0) puts("0.0 0.0 0.0");else{double ans=1.0*s/(a+b+c);printf("%.12f %.12f %.12f\n",a*ans,b*ans,c*ans);}return 0;}
E :没看 ,估计也不会
这篇关于Codeforces Round #118 (Div. 2)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!