[刷题]算法竞赛入门经典(第2版) 5-3/UVa10935 - Throwing cards away I
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO
代码:(Accepted,0 ms)
//UVa10935 - Throwing cards away I
#include<iostream>
#include<queue>
int N;
int main()
{
//freopen("in.txt", "r", stdin);
while (scanf("%d", &N) != -1 && N != 0) {
std::queue<int> C;
for (int i = 1;i <= N;++i) C.push(i);
printf("Discarded cards:");
for (int n = 0;n < N - 1;++n) {
if (n) printf(",");
printf(" %d",C.front());
C.pop();
C.push(C.front());
C.pop();
}
printf("\nRemaining card: %d\n", C.front());
}
return 0;
}
题意:N张扑克从1到N编号,表面那张扔掉,表面那张放最后去;表面那张扔掉,表面那张放最后去;表面那张扔掉,表面那张放最后去;表面那张扔掉,表面那张放最后去……直到只剩一张。求扔牌的顺序和最后一张。
分析:用了紫书教的queue,直接模拟,pop一张,然后把front的一张push到最后面去,再pop掉这张。直至只剩一张。
本来想直接在N张牌的数组里面,用指针p先指向第一张,把应扔掉的牌设为0,再搜索下一张不为0的牌(当p一直搜索直至指向最后一张牌的后面时,把p拉回第一张。所以其实搞个环形链表倒是不错,就是STL里我不知道list能不能做成环形的,又不高兴自己做。)。但是虽然应该快一点,实现起来比较烦,而且遇到了奇怪的bug,整了半天愣是没找出来出错的原因,鼻子都气歪了(第一次花了一下午找不出自己的错误在哪里,还是在短短的二三十行里,很不服。)。最后还是全部推倒重来,用了队列,还顺便熟悉下queue。然后发现也不会慢。
[刷题]算法竞赛入门经典(第2版) 5-3/UVa10935 - Throwing cards away I的更多相关文章
- [刷题]算法竞赛入门经典(第2版) 4-6/UVa508 - Morse Mismatches
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 代码:(Accepted,10 ms) //UVa508 - Morse Mismatches #include< ...
- [刷题]算法竞赛入门经典(第2版) 5-15/UVa12333 - Revenge of Fibonacci
题意:在前100000个Fibonacci(以下简称F)数字里,能否在这100000个F里找出以某些数字作为开头的F.要求找出下标最小的.没找到输出-1. 代码:(Accepted,0.250s) / ...
- [刷题]算法竞赛入门经典(第2版) 5-13/UVa822 - Queue and A
题意:模拟客服MM,一共有N种话题,每个客服MM支持处理其中的i个(i < N),处理的话题还有优先级.为了简化流程方便出题,设每个话题都是每隔m分钟来咨询一次.现知道每个话题前来咨询的时间.间 ...
- [刷题]算法竞赛入门经典(第2版) 4-5/UVa1590 - IP Networks
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 代码:(Accepted,0 ms) //UVa1590 - IP Networks #include<iost ...
- [刷题]算法竞赛入门经典(第2版) 6-7/UVa804 - Petri Net Simulation
题意:模拟Petri网的执行.虽然没听说过Petri网,但是题目描述的很清晰. 代码:(Accepted,0.210s) //UVa804 - Petri Net Simulation //Accep ...
- [刷题]算法竞赛入门经典(第2版) 6-6/UVa12166 - Equilibrium Mobile
题意:二叉树代表使得平衡天平,修改最少值使之平衡. 代码:(Accepted,0.030s) //UVa12166 - Equilibrium Mobile //Accepted 0.030s //# ...
- [刷题]算法竞赛入门经典(第2版) 6-1/UVa673 6-2/UVa712 6-3/UVa536
这三题比较简单,只放代码了. 题目:6-1 UVa673 - Parentheses Balance //UVa673 - Parentheses Balance //Accepted 0.000s ...
- [刷题]算法竞赛入门经典(第2版) 5-16/UVa212 - Use of Hospital Facilities
题意:模拟患者做手术. 其条件为:医院有Nop个手术室.准备手术室要Mop分钟,另有Nre个恢复用的床.准备每张床要Mre分钟,早上Ts点整医院开张,从手术室手术完毕转移到回复床要Mtr分钟.现在医院 ...
- [刷题]算法竞赛入门经典(第2版) 5-11/UVa12504 - Updating a Dictionary
题意:对比新老字典的区别:内容多了.少了还是修改了. 代码:(Accepted,0.000s) //UVa12504 - Updating a Dictionary //#define _XieNao ...
- [刷题]算法竞赛入门经典(第2版) 5-10/UVa1597 - Searching the Web
题意:不难理解,照搬题意的解法. 代码:(Accepted,0.190s) //UVa1597 - Searching the Web //#define _XIENAOBAN_ #include&l ...
随机推荐
- css中的inline-block
div { display: inline-block; *display: inline; *zoom: 1; } Basic Support包含值:none | inline | block | ...
- QConf简要搭建过程
QConf的组件: ZooKeeper as the server, restore all configurations, so the limit data size of single conf ...
- 【转】AS3画板工具类,可直接套用
原文链接:http://bbs.9ria.com/thread-212711-1-16.html 今天项目需求做一个画板,要有橡皮擦.自己懒不想写,在网上搜了半天都是习作,没有拿来就能用的又不爱看.只 ...
- POPTEST老李谈Debug和Release的区别(c#)
POPTEST老李谈Debug和Release的区别(c#) poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣 ...
- 性能调优案例分享:jvm crash的原因 2
3.core dump分析 有了core dump文件,接下来要做的就是通过命令去解析此文件,定位具体问题了,主要有以下三个命令: (1)先执行gdb $JAVA_HOME$/bin/java cor ...
- asp.net core源码飘香:从Hosting开始
知识点: 1.Kestrel服务器启动并处理Http请求的过程. 2.Startup的作用. 源码飘香: 总结: asp.net core将web开发拆分为多个独立的组件,大多以http中间件的形式添 ...
- JSTL标签分类
<c:>核心标签库:共有13个,功能分4类 1.表达式控制标签: out.set.remove.catch 2.流程控制标签: if.choose.when.otherwise 3.循环标 ...
- JavaScript学习总结(一)DOM文档对象模型
一.文档(D) 一个网页运行在浏览器中,他就是一个文档对象. 二.对象(O) "对象"是一种自足的数据集合.与某个特定对象相关联的变量被称为这个对象的属性,只能通过某个对象调用的函 ...
- less补充函数
1.ceil():向上取整2.floor():向下取整3.percentage():将浮点数转换成百分比3.round():四舍五入4.sqrt():平方根5.abs():绝对值6.pow():乘方运 ...
- Java实现Android,iOS设备实时监控
Java实现Android设备实时监控 设计思路: 第一,启动一个实时截图线程,负责实时截取Android设备屏幕,保存到本地路径. 第二,在JSP页面,定义一个img对象,实时更换img对象的src ...