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 :没看 ,估计也不会