ACM 竞赛高校联盟 练习赛 第二场 BC
生活随笔
收集整理的這篇文章主要介紹了
ACM 竞赛高校联盟 练习赛 第二场 BC
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
B.
題解:
枚舉約數即可,判斷n個數能否填約數的整數倍
?
#include <iostream> #include <cstring> #include <cstdio> using namespace std; typedef long long LL; int main(){LL T, n, m;cin>>T;while(T--){cin>>n>>m;LL Max = 0;for(LL i = 1; i*i <= m; i++){if(m % i == 0){if(m/i >= n) Max = max(Max, i);if(i >= n) { Max = max(Max, m/i); break; }} }cout<<Max<<endl;} }
?
C.
這題暴力貪心就可以過了orz
不過也有二分+動態維護凸包的神奇做法,這里不多說了
#include <iostream> #include <cstring> #include <cstdio> using namespace std; const int maxn = 1e4 + 10; int a[maxn], b[maxn], f[maxn]; int main(){int T, n, k;cin>>T;while(T--){cin>>n>>k;memset(f, 0, sizeof(f));for(int i = 1; i <= n; i++) scanf("%d %d", &b[i], &a[i]);double ans = 0;long long w = 0, v = 0, t = 0;for(int i = 1; i <= k; i++){ans = 0; for(int j = 1; j <= n; j++){if(f[j]) continue;if( (double) (w + a[j])/(v + b[j]) > ans){ans = (double) (w + a[j])/(v + b[j]);t = j;}}w += a[t];v += b[t];f[t] = 1;}printf("%.4f\n", (double)w/v);} }
?
轉載于:https://www.cnblogs.com/Saurus/p/7301347.html
總結
以上是生活随笔為你收集整理的ACM 竞赛高校联盟 练习赛 第二场 BC的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 黄山风景区都哪些收费
- 下一篇: iOS小知识点记录