CodeForces 220(div 2)
2013-12-24 15:19
288 查看
悲剧的div2。。。。。
A
题意:在n * m的矩形平面直角坐标系中,从(x, y)可以到四个点(x - a, y - b),(x + a, y - b),(x - a, y + b),(x + a, y + b)。给定坐标(x, y)和a, b, n, m,求该点走到矩形顶点( (1, m), (n, 1), (n, m), (1, 1)中任意一个)最少需要多少步。如果走不到,返回-1。
解法:枚举一下走到哪个顶点就行了。关键是有两个trick,一个是不能走出矩形边界,另一个是比如(3, 2),a = b = 1走不到(1, 1)。注意特判就好了。
tag:水题, trick
View Code
E
没做。
A
题意:在n * m的矩形平面直角坐标系中,从(x, y)可以到四个点(x - a, y - b),(x + a, y - b),(x - a, y + b),(x + a, y + b)。给定坐标(x, y)和a, b, n, m,求该点走到矩形顶点( (1, m), (n, 1), (n, m), (1, 1)中任意一个)最少需要多少步。如果走不到,返回-1。
解法:枚举一下走到哪个顶点就行了。关键是有两个trick,一个是不能走出矩形边界,另一个是比如(3, 2),a = b = 1走不到(1, 1)。注意特判就好了。
tag:水题, trick
/* * Author: Plumrain * Created Time: 2013-12-24 14:19 * File Name: D.cpp */ #include <iostream> #include <cstdio> #include <cstring> #include <vector> using namespace std; #define clr0(x) memset(x, 0, sizeof(x)) #define pb push_back #define sz(v) ((int)(v).size()) #define out(x) cout<<#x<<":"<<(x)<<endl #define tst(a) cout<<a<<" " const int inf = 2147483647 / 2; const int N = 1000005; typedef vector<int> vi; int n, m; int opt ; int an , d , flag ; int bin_search(int x) { int l = 0, r = m-1; while (l <= r){ int mid = (l + r) >> 1; if (an[mid] <= x) l = mid + 1; else r = mid - 1; } return r; } int main() { while (scanf ("%d%d", &n, &m) != EOF){ clr0 (d); clr0 (flag); for (int i = 0; i < m; ++ i) scanf ("%d", &an[i]); int idx = 0, p = 1, num = 0; while (idx < m){ if (!idx && p != an[0]) d[p] = inf; else{ if (p == an[idx]){ d[p] = 1; ++ num; ++ idx; } else d[p] = d[p-num] + 1; } ++ p; } for (int i = p; i <= 1000000; ++ i) d[i] = d[i-num] + 1; int len = 0; for (int i = 0; i < n; ++ i){ scanf ("%d", &opt[i]); if (opt[i] == -1) len -= 1 + bin_search(len); else flag[i] = d[++len]; } vi v; int cnt = 0; for (int i = n-1; i >= 0; -- i){ if (opt[i] == -1) ++ cnt; else if (flag[i] > cnt) v.pb (opt[i]); } if (!sz(v)) printf ("Poor stack!"); else for (int i = sz(v)-1; i >= 0; -- i) printf ("%d", v[i]); printf ("\n"); } return 0; }
View Code
E
没做。
相关文章推荐
- 第五届蓝桥杯——基础练习:字母图形
- python字符串倒排
- Windows下使用第三方lua库
- JavaScript中的apply()方法和call()方法使用
- 【java基础】有效利用 Java 的文档帮助
- java正则表达式基本符号
- varnish 使用rpm文件安装
- 转载:不定义JQuery插件,不要说会JQuery
- [转]SIFT中的尺度空间和传统图像金字塔
- 进程与内存7-高速缓存2(目录项高速缓存、索引节点高速缓存和磁盘高速缓存)
- python2.X 打印输出时如何不换行
- Esper学习之六:EPL语法(二)
- Matlab坐标修改 gca
- 第五届蓝桥杯—— 基础练习:数列特征
- 常见的数据类型 20131224
- Android 2D Graphics学习(二)、Canvas篇2、Canvas裁剪和Region、RegionIterator
- 进程与内存6-高速缓存1(每CPU页框高速缓存和内存高速缓存)
- 设计模式之适配器模式
- svn merge 用法
- 转载技术贴IIS6.0配置php