Codeforces Round #433 (Div. 2)
阿新 • • 發佈:2017-09-07
bre lan include pty lap hide priority 現在 blank
題目鏈接:Codeforces Round #433 (Div. 2)
codeforces 854 A. Fraction【水】
題意:已知分子與分母的和,求分子小於分母的 最大的最簡分數。
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 using namespace std; 6 int gcd(int a,int b){return b?gcd(b,a%b):a;} 7 int15msn; 8 int main() { 9 int a, b; 10 scanf("%d", &n); 11 for(int i = n/2; i >= 1; --i) 12 if(gcd(i, n-i)==1) {a = i, b = n-i; break;} 13 printf("%d %d\n", a, b); 14 retur
codeforces 854 B. Maxim Buys an Apartment【水】
題意:有標號1~n的n個公寓順序排列在一條線,已知有k個公寓不為空 但不知道是哪k個,定義一個 空的 並且旁邊至少有一個 非空的公寓 為好公寓,問最少和最多有幾個 好公寓。
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 using namespace std; 6 int n, k; 7 int main() { 8 int a, b; 9 scanf("%d %d", &n, &k); 10 if(k >= n/3+1) {a = (n!=k); b = n-k;} 11 else {a = (k!=015ms); b = k*2;} 12 printf("%d %d\n", a, b); 13 return 0; 14 }
codeforces 853 A. Planning【優先隊列】
題意:n個航班,原本順序出發,現在已知前k分鐘沒有航班能出發,每個航班均只能延遲出發時間,已知每個航班延遲一分鐘需要的花費,現在要你安排出發順序,使得總花費最小。
題解:用優先隊列維護延遲時間最大值,貪心的對每個位置取隊列中的最大值。
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <queue> 5 #include <algorithm> 6 using namespace std; 7 typedef long long ll; 8 const int N = 3e5+5; 9 int n, k; 10 int c[N], a[N]; 11 priority_queue<pair<int, int> > q; 12 ll ans, t; 13 int main() { 14 ans = t = 0; 15 while(!q.empty()) q.pop(); 16 int i, j, x; 17 scanf("%d %d", &n, &k); 18 for(i = 1; i <= k+n; ++i) { 19 if(i <= n) { 20 scanf("%d", &x); t += x; 21 q.push(make_pair(x, i)); 22 } 23 if(i > k) { 24 a[q.top().second] = i; 25 t -= q.top().first; q.pop(); 26 } 27 ans += t; 28 } 29 printf("%lld\n", ans); 30 for(i = 1; i < n; ++i) 31 printf("%d ", a[i]); 32 printf("%d\n", a[n]); 33 return 0; 34 }187ms
未完待補。。。
codeforces 853 B. Jury Meeting
Codeforces Round #433 (Div. 2)