摘要: 题意: 给出一连串的表达式,需要求出他们的结果,并且需要判断这些结果能否首尾相连成一个串,如果可以输出字典最小的那个串。分析:表达式求解需要定义符号的优先级,并用栈来维护运算符和数值结果, 结果求出来后,可以对所有串按字典序排列,然后深搜找欧拉路径,第一次找到的即为字典序最小的那个。#include<stdio.h>#include<string.h>#include<stdlib.h>#define clr(x)memset(x,0,sizeof(x))int res[1005][3];struct node{ int f,l; char s[33];}q 阅读全文
posted @ 2012-08-19 22:19 'wind 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 题意: 知道了一些课程的开始和结束时间,要从中选择尽量多的课程,而且每五分钟只能选一次。分析: 因为每五分钟最多选一次,所以只要枚举总的开始时间,以后的时间就可以确定,总的开始时间最多为 4 种情况,找到其中的最大值即可。#include<stdio.h>#include<string.h>#include<stdlib.h>#define clr(x)memset(x,0,sizeof(x))struct node{ int st,en;}q[555];int v[555];int cmp(const void*p1,const void*p2){ nod 阅读全文
posted @ 2012-08-19 22:13 'wind 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 题意:为了降低出现暴动及逃跑事件的风险,两个相同容量的临近监狱的管理层决定重新安排他们的囚犯。他们想用一个监狱里一半的囚犯去交换另一个监狱里一半的囚犯 然而,从囚犯们犯罪史的存档信息可知某些囚犯成对被关在同一座监狱里时会很危险,这也是现今他们被分开的原因,即对于每对这样的囚犯,一名在第一个监狱服 刑,另一名在第二座监狱服刑。管理层认同将那些囚犯保持分开的重要性,但这也使得他们的新安排任务有些棘手,事实上,他们很快就了解到有时这个互换一半囚 犯的意愿是不可能达成的。每当这种情况下,他们不得不满足于交换尽可能接近一半数量的囚犯。分析:需要把第一座监狱和第二所监狱有联系的放到一起,形成一个连通块,即 阅读全文
posted @ 2012-08-19 21:59 'wind 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 题意:恐怖分子在去年轰炸哈理工未遂后,打算今年卷土重来,学校为了预防恐怖分子潜入主楼,决定在今年9月份在每间教室安装摄像头,恐怖分子为了能够成 功潜入主楼,将要摧毁这些摄像头。 已知摄像头的安装是成网络状的,摄像头的连接是双向的。如果网络中任何两个摄像头之间至少有一条路,则该网络为连通的,否则不连通。一个空的网络 或只有一个摄像头的网络被认为是连通的。如果网络不连通,则导致摄像头主系统瘫痪,恐怖分子会成功潜入主楼。因为摄像头之间的连线是接在墙里的, 所以只能靠摧毁摄像头使网络不连通,做为恐怖分子头目的你,请你计算至少要摧毁多少个摄像头才能让你的手下成功潜入主楼。分析:使得网络不连通所需去除的最 阅读全文
posted @ 2012-08-19 21:52 'wind 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 题意:Colugu市有n个车站和m条路。每条路直接连接两个车站,所有的路都是单向的。为了维护空气质量,政府停用了所有军队车辆。所以军队必须乘坐巴士去机场。两个车站之 间可能不只一条路。如果一个车站被摧毁,那么所有通向那个车站的道路都没用了。Gabiluso需要去做的是摧毁一些车站使得军队不能在k分钟内 赶到机场。一辆巴士通过一条路只需要一分钟。从1到n给所有车站编号。编号为1的车站在军营里,编号为n的车站在机场里。军队总是从编号为1的车站出发 由于有重兵把守,所以编号为1和n的车站不能被摧毁。当然那里没有一条路直接从1号车站连接到n号车站,请帮助Gabiluso计算他需要摧毁车站的最小数量,他 阅读全文
posted @ 2012-08-19 21:44 'wind 阅读(300) 评论(0) 推荐(0) 编辑