比赛链接:https://ac.nowcoder.com/acm/contest/32708
K题:大意是小g将要进行n场比赛,他的获胜概率是x=a/b,对于每一场比赛,如果期望值<=x,他将获胜,否则失败。
ans 一定是 n*x 或者 n*x+1。
我们容易发现,第一场一定会赢,所以剩下的场次就是n-1 ,这样的ans 就是 ans = (n-1)*x+1;
因为一定存在一个胜场。(就硬找规律)
code:
#include<bits/stdc++.h> using namespace std; #pragma GCC optimize(2) #define ll long long inline int read() { int x=0,f=1;char ch=getchar(); while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();} while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();} return x*f; } void solve() { ll n,a,b; cin>>n>>a>>b; if(n==1) cout<<1<<endl; else cout<<(n-1)*a/b+1<<endl; } int main() { //cin.ignore(numeric_limits<streamsize>::max(),'\n') ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int t; cin>>t; while(t--) { solve(); } }
D题:https://www.cnblogs.com/WIDA/p/16224507.html先存着吧ε=(´ο`*)))唉