Codeforces Round #387 (Div. 2)
2017-01-04 18:44
93 查看
A - Display Size
#include <cstdio> #include <cmath> #include <cstring> #include <iostream> #include <algorithm> using namespace std; int main(){ int n; while(scanf("%d", &n) !=EOF){ for(int i = sqrt(n+0.5); i >= 1; i--){ if(n%i==0){ printf("%d %d\n", min(n/i, i), max(n/i,i)); break; } } } return 0; }
B - Mammoth’s Genome Decoding
#include <cstdio> #include <cmath> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int maxn = 1000; char s[maxn]; int main(){ int n; scanf("%d", &n); scanf("%s", s); int a = 0, b = 0, c = 0, d = 0; if(n%4){ printf("===\n"); return 0; } for(int i = 0; i < strlen(s) ; i++){ if(s[i] == 'A') a++; else if(s[i] == 'G') b++; else if(s[i] == 'C') c++; else if(s[i] == 'T') d++; } n /= 4; if(a > n || b > n || c > n || d > n){ printf("===\n"); return 0; } else{ a = n-a; b = n-b; c = n-c; d = n-d; for(int i = 0; i < strlen(s); i++){ if(s[i] == '?'){ if(a){ printf("A"); a--; } else if(b){ printf("G"); b--; } else if(c){ printf("C"); c--; } else if(d){ printf("T"); d--; } } else printf("%c", s[i]); } } return 0; }
C - Servers
强行用优先队列和STL给写出来的#include <queue> #include <vector> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int maxn = 1e6+10000; vector <int> vec[maxn]; priority_queue <int, vector<int>, greater<int> > pq; struct Node{ int t, k, d; bool operator < (const Node temp)const{ return t < temp.t; } }a[maxn]; void init(){ while(!pq.empty()) pq.pop(); for(int i = 0; i < maxn; i++) vec[i].clear(); } int main(){ int n, q; while(scanf("%d%d", &n, &q) != EOF){ init(); for(int i = 1; i <= n; i++) pq.push(i); for(int i = 0; i < q; i++) scanf("%d%d%d", &a[i].t, &a[i].k, &a[i].d); sort(a, a+q); int j = 0; for(int i = 1; i <= 1000000; i++){ for(int k = 0; k < vec[i].size(); k++) pq.push(vec[i][k]); if(i == a[j].t){ if(pq.size() >= a[j].k){ int sum = 0; while(a[j].k){ sum += pq.top(); vec[a[j].t+a[j].d].push_back(pq.top()); pq.pop(); a[j].k--; } printf("%d\n", sum); } else printf("-1\n"); j++; if(j >= q) break; } } } return 0; }
D - Winter Is Coming
算出每个间距,然后贪心,注意细节即可。#include <vector> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int maxn = 2e5+100; int a[maxn]; vector <int> vec; int main(){ int n, k; while(scanf("%d%d", &n, &k) != EOF){ vec.clear(); int sum = 0; int change = 0; int form = -1; for(int i = 0; i < n; i++){ scanf("%d", &a[i]); if(a[i] < 0){ sum++; if(form >= 0) vec.push_back(i - form); form = i; } if(i == 0){ if(a[i] < 0) change++; } else{ if((a[i-1]>=0&&a[i]<0)||(a[i-1]<0&&a[i]>=0)) change++; } } if(sum > k){ printf("-1\n"); continue; } int left = k-sum; sort(vec.begin(), vec.end()); for(int i = 0; i < vec.size(); i++){ if(vec[i] == 1) continue; else{ if(left >= vec[i] - 1){ change -= 2; left -= vec[i] - 1; } } } if(n - form != 1 && left >= n-form-1) change--; if(change <= 0) printf("0\n"); else printf("%d\n", change); } return 0; }
E - Comments
自己写了半天一直不停的runtime error,表示快疯了,其实就是一直往下,然后处理到为0的时候再往上推,如果上一步继续为0那么继续往上推,直到停止。#include<bits/stdc++.h> using namespace std; #define MN 1000000 string s,ans[MN+5]; int f[MN+5]; int main() { int i,l=1,mx=1; cin>>s;f[0]=0x7fffffff; for(i=0;i<s.size();++i) { while(!f[l-1]--)--l;if(l>mx)mx=l; for(;s[i]!=',';++i)ans[l]+=s[i]; ans[l]+=' ';f[l]=0; for(++i;i<s.size()&&s[i]!=',';++i)f[l]=f[l]*10+s[i]-'0'; ++l; } cout<<mx<<endl; for(i=1;i<=mx;++i)cout<<ans[i]<<endl; return 0; }
相关文章推荐
- 收集整理:js弹出div对话框(1,透明,2带拖动功能)
- Codeforces Beta Round #83 DIV2
- 采用Div+Css布局——牛腩
- div 并排
- 如何让DIV可编辑、可拖动
- JS+DIV+CSS排版布局实现美观的选项卡效果
- Codeforces Round #357 (Div. 2) B. Economy Game
- 精通 CSS+DIV 网页样式与布局 76
- 【Codeforces Round #422 (Div. 2) A】I'm bored with life
- DIV+CSS布局基础:HTML标记(二)
- (转)div+css布局之float与clear的用法
- 动态向div内添加标签内容:
- Codeforces Round #243 (Div. 2)——Sereja and Swaps
- DIV+CSS实战系列课程附实例源码
- TopCoder SRM 670 Div2 Problem 1050 - Treestrat (floyd)
- Codeforces Round #357 (Div. 2)
- Codeforces Round #383 (Div. 1)
- Codeforces Round #438 (Div. 1 + Div. 2 combined)
- (精)在ASP.NET中使用IFRAME+DIV,可以实现在同一页面使用弹出(模态)窗口
- document body window div 高度、宽度图解