例题6-2 UVA 514 - Rails (铁轨)
2016-02-03 23:34
525 查看
挺好的一道题目,想样例代码也想了很久。
大体思路:
整体分为两个过程,从A到C,从C到B,
用A代表要从A到C的编号序列,肯定是1到n了,
用B代表最终在B的车的编号。
让A = 1,B = 1,B是最终车辆的数组索引。
开始循环,发现A中的车等于B中的车,则说明了,这辆车要立即进站并且立即出站。
else 发现 B中的车等于栈C中的第一个,那么说明此时,栈C的中的车要出站。
else 发现A中还有剩余,则让A进站。
否则无意义了 那就肯定NO了!
在一点输出注意格式就OK了,我在一次没有读好题目,错在格式上了,其实最后一组后是有空行的!
启示:
这个题如果不这样想的话,就是硬想的话,会变比较麻烦并且不知所措,所以这个题目给我一个启示,那就是尽量把问题实际化,具体化,就是让这个问题变得有实际意义,一项一项模拟,最后的else肯定就是不成立的了!
代码如下:
大体思路:
整体分为两个过程,从A到C,从C到B,
用A代表要从A到C的编号序列,肯定是1到n了,
用B代表最终在B的车的编号。
让A = 1,B = 1,B是最终车辆的数组索引。
开始循环,发现A中的车等于B中的车,则说明了,这辆车要立即进站并且立即出站。
else 发现 B中的车等于栈C中的第一个,那么说明此时,栈C的中的车要出站。
else 发现A中还有剩余,则让A进站。
否则无意义了 那就肯定NO了!
在一点输出注意格式就OK了,我在一次没有读好题目,错在格式上了,其实最后一组后是有空行的!
启示:
这个题如果不这样想的话,就是硬想的话,会变比较麻烦并且不知所措,所以这个题目给我一个启示,那就是尽量把问题实际化,具体化,就是让这个问题变得有实际意义,一项一项模拟,最后的else肯定就是不成立的了!
代码如下:
#include<stack> #include<cstdio> using namespace std; const int maxn = 1000 + 10; int a[maxn]; int main() { int n,cnt=0; while(scanf("%d",&n) == 1 && n){ while(scanf("%d",&a[1]) && a[1]){ for (int i = 2; i <= n; ++i)scanf("%d",&a[i]); stack<int>s; int A=1,B=1; bool ok=true; while(B <= n){ if (A == a[B]){A++;B++;} else if (!s.empty() && s.top() == a[B]){s.pop();B++;} else if(A <= n)s.push(A++); else {ok=false;break;} } printf("%s", ok ? "Yes\n" : "No\n"); } printf("\n"); } return 0; }
相关文章推荐
- quailty's Contest #1 A1 道路修建 Small
- 为何谷歌围棋AI AlphaGo可能会把李世石击溃
- VC6.0 error LNK2001: unresolved external symbol _main解决办法
- Flash, Flex, Air, Flashplayer之间的相互关系是什么?
- wait和notify
- Spark PairRDD 行动与数据分区
- Centos下apache启动时httpd: apr_sockaddr_info_get() failed for 报错
- Connection for controluser as defined in your configuration failed.
- Failed to initialize NVML: GPU access blocked by the operating system
- Jenkins进阶系列之——02email-ext邮件通知模板
- Jenkins进阶系列之——01使用email-ext替换Jenkins的默认邮件通知
- Gmail两步验证
- NSLayoutConstraint
- 简单的AIDL的使用
- UVa 442 && HDU 1082 Matrix Chain Multiplication【栈】
- DataInputStream
- An End-to-End System for Unconstrained Face Verification with Deep Convolutional Neural Networks
- pod setup》error: RPC failed; result=18, HTTP code = 200
- hdu acm 1151 Air Raid
- 一个基于MVVM的TableView组件化实现方案——AITableView