Uva - 679 - Dropping Balls
2015-06-15 18:36
323 查看
这题真是经历了各种。。。
第一次对题目输入要求没有理解到位,直接RE了,第二次因为方式是模拟所有小球的下落,结果直接超时。
超时代码:
#include <iostream> #include <cstdio> #include <cstdlib> #include <cctype> #include <cstring> #include <string> #include <sstream> #include <vector> #include <set> #include <map> #include <algorithm> #include <stack> #include <queue> #include <bitset> #include <cassert> using namespace std; const int maxn = 20; int s[1 << maxn]; // 2的20次方 int main() { int D, I; int T; cin >> T; while (T--) { cin >> D; if (D == -1) { break; } cin >> I; memset(s, 0, sizeof(s)); int k, n = (1 << D) - 1; // n是最大节点编号2的D次方减一 for (int i = 0; i < I; i++) { k = 1; while (1) { s[k] = !s[k]; k = s[k] ? k * 2 : k * 2 + 1; if (k > n) { break; } } } printf("%d\n", k / 2); } cout << -1 << endl; return 0; }
后来只计算最后一个小球的路径,时间上是没问题了,可是这道题目的输入还是坑了我还几次,输入先要求输入测试次数,最后那个-1以为是最后输出,结果不然,那个-1是要求输入的-1,但是那还怎么按照测试次数进行循环呢,,,最后才发现这个输入测试次数基本就没什么用,最后还是用while(1)做了,里面判断输入是否是-1,是-1了就退出。。真是服了出题者,就是这么任性。
AC代码:
#include <iostream> #include <cstdio> #include <cstdlib> #include <cctype> #include <cstring> #include <string> #include <sstream> #include <vector> #include <set> #include <map> #include <algorithm> #include <stack> #include <queue> #include <bitset> #include <cassert> using namespace std; int main() { int D, I; int T; cin >> T; while (1) { scanf("%d", &D); if (D == -1) { break; } scanf("%d", &I); int k = 1; for (int i = 0; i < D - 1; i++) { if (I % 2) { k = k * 2; I = (I + 1) / 2; } else { k = k * 2 + 1; I /= 2; } } printf("%d\n", k); } return 0; }
相关文章推荐
- Uva - 679 - Dropping Balls
- Linux iostat监测IO状态
- 【OpenCV】访问图像中每个像素的值
- MyBatis学习门户网站(一)
- LINUXCNC的python模块生成函数
- linux编译注解
- PopupWindow的各种用法(一)——PopupWindow的基本用法(与软键盘并存不冲突)
- Official online document, install svn server in centOS
- JAVE not work in linux
- SVN与Apache整合
- centos6.6安装配置jboss7.1.1
- shell中$0,$?,$!等的特殊用法
- IIs 网站应用程序与虚拟目录的区别及高级应用说明(文件分布式存储方案)
- SHELL学习--shell脚本基础知识
- 如何降低网站的跳出率?
- Linux 有问必答:如何在桌面版 Ubuntu 中安装 Unity Tweak Tool
- Linux时间戳和标准时间的互转
- 怎么判断英文网站是否做过谷歌优化?
- ant在linux服务器上编译时报incompatible types错误
- Windows下配置nginx + php