摘要: 描述话说南京的城市规划一般一般,各个大学分布极不合理,难于沟通。 我们夜猫族打算用一种常人难以想象的方式建立大学通道:用地道使得所有大学都相通。 但地道的造价不菲,而大学生是贫困群体,所以我们希望用尽量小的代价。 已知建设一条地道的费用和地道的距离成正比。其关系是,一个单位的距离需要的花费是7个ACM币,在ACM世界里货币的换算方法简单极了,29个ACM币等于一个DS币,17个DS币等于一个算法币。(ACM币单位为ac,DS币单位为ds,算法币单位为al) 但是学校太多了,而且有些学校不能直接连接(比如,跨湖或跨江地道太难建设了)。需要聪明的你的帮助。 输入第一行包含两个整数N,M。N表示学校 阅读全文
posted @ 2013-11-21 23:57 七年之后 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 描述有这样一个游戏:从一个正整数开始,两人轮流进行如下运算: 若是奇数,就把这个数乘以3再加1;若是偶数,就把这个数除以2。这样演算下去,直到第一次得到1才算结束,首先得到1的获胜。 比如,要是从1开始,就可以得到1→4→2→1;要是从17开始,则可以得到17→52→26→13→40→20→10→5→16→8→4→2→1。 这个问题就是叙拉古猜想,也叫科拉兹猜想或角谷猜想。 现在,你和你的朋友一起玩这个游戏,由你先开始,请问谁获胜? 输入第一行N(Nusing namespace std;int main(){ int test; cin>>test; while(test-... 阅读全文
posted @ 2013-11-21 23:55 七年之后 阅读(480) 评论(0) 推荐(0) 编辑
摘要: 描述回文是一种有趣的现象。英语中单词Palindromes指顺读倒读都一样的词语,比如radar,reviver,repaper,deified,rotator。美国南卡罗来那州查尔斯顿市北部有一片沼泽地,其名字的拼法也采用了这一形式:Wassamassaw,印第安语的意思是“世界上最恶劣的地方。 现在给定一个单词,要求你判断这个单词是不是回文词。 输入输入数据由若干行组成,每行一个单词(长度为[1,256]),仅由字母组成,没有前导或后置的非法字符,单词后紧跟换行回车符。 输出对于一个单词,如果是回文词,输出“Bingle! Palindrome.”,否则,输出“Not Palindrome 阅读全文
posted @ 2013-11-21 23:53 七年之后 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 描述 为了丰富校园网络生活,学校 BBS 举行了一次水王争霸赛。比赛开始后,选手们疯狂灌水,都想争取到水王这个荣誉称号。但学校的 BBS 是如此的不堪一击,才 1e-3 秒就超负荷了。 现在需要把选手们灌的水集合起来,降低服务器负荷。 事情是这样得到处理的: 假设每个选手每次灌水量为1L,每灌一次水,服务器就用一个容量为无限的虚拟容器收集这1L水。 最后服务器中有N个容器收集了水。而服务器最多能负载K个装了水的容器。但是,服务器只有一种自救措施:就是把两个装了同样多水的容器合并到这两个容易中的其中一个,另一个空了的直接free它。 然而不能排除这种情况的存在:通过自救方式,仅由选手们灌... 阅读全文
posted @ 2013-11-21 23:49 七年之后 阅读(728) 评论(0) 推荐(0) 编辑
摘要: 描述在一些美国主要城市里,为企业传送文件和小物品的自行车快递长期以来就是流动运输服务的一部分。波士顿的骑车人是不同寻常的一族。他们以超速、不遵守单行道和红绿灯、无视汽车、出租、公交和行人的存在而臭名远扬。快递服务竞争激烈。比利快递服务公司(BBMs)也不例外。为发展业务,制定合理的收费,BBMS正根据快递员能走的最短路线制定一项快递收费标准。而你则要替BBMS编写一个程序来确定这些路线的长度。以下假设可以帮助你简化工作:●快递员可以在地面上除建筑物内部以外的任何地方骑车。●地形不规则的建筑物可以认为是若干矩形的合并。并规定,任何相交矩形拥有共同内部,而且是同一建筑物的一部分。●尽管两个不同的建 阅读全文
posted @ 2013-11-21 23:47 七年之后 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 描述给定一个正整数,求其各位之和。 输入输入一行,为一个正整数(最多10,000位)。 输出输出各位之和。样例输入17样例输出8#include #include #define N 10000using namespace std;int main(){ string a; int sum=0,len; cin>>a; len=a.size(); for(int i=len-1;i>=0;i--) sum+=(a[i]-'0'); cout<<sum<<endl; return 0;} 阅读全文
posted @ 2013-11-21 23:41 七年之后 阅读(322) 评论(2) 推荐(0) 编辑
摘要: 描述设有n个城市,编号为0~n-1,m条单向航线的起点和终点由输入提供,寻找一条换乘次数最少的线路方案。输入第一行为三个整数n、m、v,表示城市数、单向航线数和起点城市。以下m行每行两个整数,表示一条边的起点、终点,保证不重复、不失败。2≤n≤20,1≤m≤190输出共n-1行,分别是从起点城市v到其他n-1个城市最少换乘次数,按照终点城市序号从小到大顺序输出,不能抵达时输出-1。样例输入3 2 0 0 1 1 2样例输出1 2 #include#includeusing namespace std;int a[20][20]={0};int b[20];int n;bool *visit;v 阅读全文
posted @ 2013-11-21 23:40 七年之后 阅读(696) 评论(0) 推荐(0) 编辑
摘要: 描述图(graph)是数据结构 G=(V,E),其中V是G中结点的有限非空集合,结点的偶对称为边(edge);E是G中边的有限集合。设V={0,1,2,……,n-1},图中的结点又称为顶点(vertex),有向图(directed graph)指图中代表边的偶对是有序的,用代表一条有向边(又称为弧),则u称为该边的始点(尾),v称为边的终点(头)。无向图(undirected graph)指图中代表边的偶对是无序的,在无向图中边(u,v )和(v,u)是同一条边。输入边构成无向图,求以顶点0为起点的宽度优先遍历序列。输入第一行为两个整数n、e,表示图顶点数和边数。以下e行,每行两个整数,表示一 阅读全文
posted @ 2013-11-21 23:38 七年之后 阅读(521) 评论(0) 推荐(0) 编辑
摘要: 描述图(graph)是数据结构 G=(V,E),其中V是G中结点的有限非空集合,结点的偶对称为边(edge);E是G中边的有限集合。设V={0,1,2,……,n-1},图中的结点又称为顶点(vertex),有向图(directed graph)指图中代表边的偶对是有序的,用代表一条有向边(又称为弧),则u称为该边的始点(尾),v称为边的终点(头)。无向图(undirected graph)指图中代表边的偶对是无序的,在无向图中边(u,v )和(v,u)是同一条边。输入边构成无向图,求以顶点0为起点的深度优先遍历序列。输入第一行为两个整数n、e,表示图顶点数和边数。以下e行每行两个整数,表示一条 阅读全文
posted @ 2013-11-21 23:37 七年之后 阅读(1521) 评论(0) 推荐(0) 编辑
摘要: 描述回文数是这样一个正整数:它从左往右读和从右往左读是一样的。例如1,111,121,505都是回文数。将1到100,000,000内所有回文数按从小到达排序后,第k个回文数是多少呢?输入第一行为一个整数N,表示询问的次数。以下N行每行一个整数k,表示询问第k个回文数是多少。输出输出共N行,按照输入数据的顺序,依次输出第k个回文数。样例输入2 5 10样例输出5 11#includeint main(){int n,j,i,k;scanf("%d",&n);while(n--){scanf("%d",&k);if(k<=9);els 阅读全文
posted @ 2013-11-21 23:33 七年之后 阅读(740) 评论(0) 推荐(0) 编辑
摘要: 描述Na 给准备送给ZZ两个整数,a, b,他还计算了这两个整数的平均值c,碰巧c也是整数。 但是Na 突然把b给弄丢了,你要帮助Na通过a, c计算出来b的值。输入输入为一行,两个用空格隔开的整数 a, c (-1000using namespace std;int main(){ int a,c; cin>>a>>c; cout<<2*c-a<<endl; return 0;} 阅读全文
posted @ 2013-11-21 23:32 七年之后 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 描述对于一个只由0,1组成的序列,要求该序列中不能有相邻的1。问对于给定长度N,满足条件的0,1序列共有多少种呢?输入第一行为一个整数Q,表示询问的次数。接下来Q行每行一个整数N(1using namespace std;int main(){ int a[45]={0}; int q,n; a[1]=2; a[2]=3; for(int i=3;i>q; for(int j=0;j>n; cout<<a[n]<<endl; } return 0;} 阅读全文
posted @ 2013-11-21 23:30 七年之后 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 描述给你一个数字求它的所有约数的和。比如12,约数有1,2,3,4,6,12 加起来是28现在给你一个数字I。 (1 #includeusing namespace std;int main(){ int n,m; cin>>n; int a[1001],b[1001],c[1001]; int i,j=0,k=0; for(i=0;i>a[i]; cin>>m; for(i=0;i<n;i++) { if(a[i]<m) { b[j]=a[i]; j++; }... 阅读全文
posted @ 2013-11-21 23:27 七年之后 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 描述给定整数a,b,n,要求计算(a^b)mod n输入多组数据,每组数据一行,为三个用空格隔开的整数a,b,n1using namespace std;__int64 mod(__int64 a,__int64 b,__int64 c) { __int64 m=1; while(b>=1) { if(b%2==1) m=a*m%c; a=a*a%c; b=b/2; } return m; }int main(){ __int64 a,b,c,result; while(... 阅读全文
posted @ 2013-11-21 23:26 七年之后 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 描述sed 同学最近突发奇想,认为伟大的建筑物的屋顶应该是“自由堆叠”出来的,他的设计方案是:将各种颜色的长方形建筑板材堆叠在一起,并保证各个板材长边、宽边均相互平行或在一条直线上,板材之间的重叠部分用连接装置固定在一起。你的任务是计算这个“自由堆叠的屋顶”所覆盖的面积。sed 将会在屋顶平面上建立一个二维坐标系,提供给你每个长方形建筑板材左上角、右下角的坐标。为简化计算,这里忽略板材的厚度,假设它们都在同一个平面上。输入输入数据包含多组测试案例。每组测试案例由N(0≤N≤100)开头,后续N行每行包含4个实数x1;y1;x2;y2 (0 #include#includeusing names 阅读全文
posted @ 2013-11-21 23:24 七年之后 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 描述一定数目的点或圆在等距离的排列下可以形成一个等边三角形,这样的数被称为三角形数。比如10个点可以组成一个等边三角形,因此10是一个三角形数: x x x x x x x x x x开始18个三角形数是1、3、6、10、15、21、28、36、45、55、66、78、91、105、120、136、153、171。请求出第n个三角形数。输入输入数据包含多组测试用例。每组测试用例为一个整数N,长度不超100。输出对于每组测试用例,输出对应的三角形数。样例输入1 2 3 4 5 11111111样例输出1 3 6 10 15 61728399382716import java.math... 阅读全文
posted @ 2013-11-21 23:17 七年之后 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 描述建筑群所有建筑高度分别为h1、h2…hN,可以得到一些单调递减的序列hi1、hi2…hiK,其长度称为建筑群的坡值,这里1≤i1#includeusing namespace std;int main(){ //freopen("a.txt","r",stdin); int n,*a,*count,max; cin>>n; a=(int *)malloc(n*sizeof(int)); count=(int *)malloc(n*sizeof(int)); int i,j; for(i=0;i>a[i]; for(i=0;i=0;i 阅读全文
posted @ 2013-11-21 23:15 七年之后 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 描述校ACM协会近四个月举行了为期100天ACM程序设计之马拉松竞赛,竞赛题总数为1000,同学们反响热烈,先后有许多ACM程序设计竞赛爱好者报名,这些选手按报名时间从1开始先后编号,成功解答的题目数为选手的成绩。今天进行成绩统计和颁奖仪式,已知按编号排序的选手成绩(各不相同),根据给定标准成绩将这些选手划为两个部分,小于标准成绩的选手不能获得任何奖项,大于等于标准成绩的选手将得到嘉奖,并依成绩从低到高上台领奖。输入共三行:第一行给出选手人数(不超过1000);第二行依编号从低到高给出选手成绩;第三行给出标准成绩。输出共两行:第一行给出根据标准成绩划分后的选手成绩,小于标准成绩的部分、大于等于 阅读全文
posted @ 2013-11-21 23:14 七年之后 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 描述常见文本编辑器的一个功能是搜索,打开一段英文文字,根据一个给定的英文短语,可以搜索得到这个短语在文章中的位置,短语有可能重复出现。现请求出给定的短语在一段文字中出现的最后一个位置。文字中单词从1开始编号,所求的位置为短语第1个单词在这段文字中对应单词的编号。 输入多行,每行以 # 为结束,第1行为一段英文文字(单词数、数字不多于500),其余行是待搜索的英文短语(单词数不多于10)。这里英文文字、英文短语只包含英文单词,这些单词以空格分隔。输出多行,每一行对应输入中给定的短语在文字中出现的最后一个位置,搜索不到时输出-1。样例输入STOCKHOLM April 21 PRNewswire 阅读全文
posted @ 2013-11-21 23:12 七年之后 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 描述The digital root of a positive integer is found by summing the digits of the integer. If the resulting value is a single digit then that digit is the digital root. If the resulting value contains two or more digits, those digits are summed and the process is repeated. This is continued as long as 阅读全文
posted @ 2013-11-21 22:48 七年之后 阅读(262) 评论(0) 推荐(0) 编辑