Codeforces Round #127 (Div. 1)
来源:互联网 发布:linux 查找匹配字符串 编辑:程序博客网 时间:2024/06/05 12:53
A. Clear Symmetry:
水题坑了一下,3的时候要特判
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;int main() { int x; scanf("%d", &x); if(x == 3) return puts("5"), 0; for(int i = 1;i <= 100; i+= 2) { int tot = (i*i+1)/2; if(tot >= x) return printf("%d\n", i), 0; } return 0;}
B. Guess That Car!
其实最后发现x,y上的距离可以分开算的。
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;typedef __int64 ll;const int maxn = 1000 + 5;int a[maxn][maxn];ll x[maxn], y[maxn];int get(int i, int j) { if(i < j) return (j-i)*4-2; return (i-j)*4+2;}int main() { int n, m; scanf("%d%d", &n, &m); for(int i = 1;i <= n; i++) for(int j = 1;j <= m; j++) scanf("%d", &a[i][j]); for(int i = 1;i <= n; i++) { for(int j = 1;j <= m; j++) { x[i] += a[i][j]; y[j] += a[i][j]; } } ll ansx, ansy; int xx = -1, yy = -1; for(int i = 0;i <= n; i++) { ll cur = 0; for(int j = 1;j <= n; j++) cur += x[j]* get(i, j)*get(i, j); if(xx == -1 || ansx > cur) { xx = i; ansx = cur; } } for(int i = 0;i <= m; i++) { ll cur = 0; for(int j = 1;j <= m; j++) { cur += y[j]*get(i, j)*get(i, j); } if(yy == -1 || ansy > cur) { yy = i; ansy = cur; } } printf("%I64d\n", ansx + ansy); printf("%d %d\n", xx, yy); return 0;}
C. Fragile Bridges
有n个城市,可以发现,从第i个城市开始,到第j个城市结束,那么第i个城市左边每条路都是走偶数次的,i,j城市中间每条路都是走奇数次的,j城市右边都是走偶数次的,需要注意的是如果i左边的某条路个数为1则不能过去了,j右边的也一样。
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;typedef __int64 ll;const int maxn = 100000 + 5;ll a[maxn], c[maxn], d[maxn];int next[maxn];int main() { int n; scanf("%d", &n); for(int i = 1;i < n; i++) scanf("%I64d", &a[i]); for(int i = 1;i < n; i++) { if(a[i]&1) { d[i] = d[i-1] + a[i]-1; c[i] = c[i-1] + a[i]; } else { d[i] = d[i-1] + a[i]; c[i] = c[i-1] + a[i]-1; } } int cur = n-1; for(int i = n-1;i >= 0; i--) { if(a[i+1] == 1) { cur = i; } next[i] = cur; } ll ans = d[n-1], mx = 0; int pre = 0; for(int i = 1;i < n; i++) { if(a[i] == 1) pre = i; mx = max(mx, d[i] - c[i] - d[pre]); ans = max(ans, mx + d[next[i]] - d[i] + c[i]); } printf("%I64d\n", ans); return 0;}
- Codeforces Round #127 (Div. 1)
- Codeforces Round #127 (Div. 2)
- Codeforces Round #127 (Div. 2)
- Codeforces Round #127 (Div. 2)
- Codeforces Round #110 (Div. 1)
- Codeforces Round #138 (Div. 1)
- Codeforces Round #140 (Div. 1)
- Codeforces Round #153 (Div. 1)
- Codeforces Round #157 (Div. 1)
- Codeforces Round #160 (Div. 1)
- Codeforces Round #162 (Div. 1)
- Codeforces Round #165 (Div. 1)
- Codeforces Round #165 (Div. 1)
- Codeforces Round #167 (Div. 1)
- Codeforces Round #168 (Div. 1)
- Codeforces Round #174 (Div. 1)
- Codeforces Round #187 DIV 1
- Codeforces Round #198 (Div. 1)
- http协议GET方式获取图片
- 兼容ie8的tab选项卡
- 无聊耍博客~~
- HTML5的沿革提供了一些新的元素和属性
- 如何用递归树求快速排序时间复杂度
- Codeforces Round #127 (Div. 1)
- SEO基本概念之死链接
- 算法之二分搜索法
- MDCC为移动开发者服务:一看、一聊、一聚
- SQO2008配置管理工具服务显示远程过程调用失败0x800706be
- C++考试及答案(试卷一)
- win7调整和删除Win7休眠文件Hiberfil.sys释放C盘
- MyEclipse去除jsp校验错误【转载】
- hdu4504威威猫系列故事——篮球梦(DP)