2017 EC-FInal部分問題解————HPU ICPC国慶節訓練2
ディレクトリ、クリックして該当する問題解にジャンプします [A. Chat Group](https://codeforces.com/gym/101775/problem/A) [C. Traffic Light](https://codeforces.com/gym/101775/problem/C) [L. SOS](https://codeforces.com/gym/101775/problem/L)
タイトルリンクCF上の
A. Chat Group
最初は思っていたのが間違っていて、ずっとC n k Cを出したいと思っていました.n^k CnkからC n n C_n^n Cnnの時計、それから彼らを加えて後で考えて、C n k C_からn^k CnkからC n k+1 C_n^{k+1}Cnk+1はC n k∗(n−k+1)/(k+1)C_n^k*(n-k+1)/(k+1)Cnk∗(n−k+1)/(k+1)なのでそのまま差し出しますがオーバーフローに注意
C. Traffic Light
赤信号の最大値を探すことです
L. SOS
チームメイトが30分ほどゲームをしてきた必勝態S_S
タイトルリンクCF上の
A. Chat Group
最初は思っていたのが間違っていて、ずっとC n k Cを出したいと思っていました.n^k CnkからC n n C_n^n Cnnの時計、それから彼らを加えて後で考えて、C n k C_からn^k CnkからC n k+1 C_n^{k+1}Cnk+1はC n k∗(n−k+1)/(k+1)C_n^k*(n-k+1)/(k+1)Cnk∗(n−k+1)/(k+1)なのでそのまま差し出しますがオーバーフローに注意
#include
using namespace std;
typedef long long ll;
const ll MOD = 1000000007;
ll pow_mod(ll a, ll b, ll c){
ll ans = 1;
a %= MOD;
while(b) {
if(b&1) ans = ans*a%c;
a = a*a%c;
b>>=1;
}
return ans;
}
int main() {
int t,Case = 0;
ll n,k;
scanf("%d",&t);
while(t--) {
scanf("%I64d %I64d",&n,&k);
ll ans = pow_mod(2,n,MOD)-1;
ll num = n;
for(int i=2;i<k;++i) {
ans = ((ans-num+MOD)%MOD+MOD)%MOD;
num = (num*(n-i+1)%MOD)*(pow_mod(i,MOD-2,MOD))%MOD;
}
ans = ((ans-num+MOD)%MOD+MOD)%MOD;
printf("Case #%d: %I64d
",++Case, ans%MOD);
}
return 0;
}
C. Traffic Light
赤信号の最大値を探すことです
#include
using namespace std;
typedef long long ll;
int main() {
int t,Case = 0;
int n;
scanf("%d",&t);
while(t--) {
scanf("%d",&n);
double ans = 0,x,a,b,tmp=0;
for(int i=0;i<=n;++i) {
scanf("%lf",&x);
ans += x;
}
for(int i=0;i<n;++i) {
scanf("%lf %lf",&a,&b);
if(b>tmp) tmp = b;
}
printf("Case #%d: %.6f
",++Case,tmp+ans);
}
return 0;
}
L. SOS
チームメイトが30分ほどゲームをしてきた必勝態S_S
#include
using namespace std;
int main() {
int t,Case = 0;
int n;
scanf("%d",&t);
while(t--) {
scanf("%d",&n);
printf("Case #%d: ",++Case);
if(n<=6) puts("Draw");
else if(n%2) puts("Panda");
else if(n>=16) puts("Sheep");
else puts("Draw");
}
return 0;
}