ACM后续
文章平均质量分 72
有一种宿命叫无能为力
即便梦想依旧遥不可及,我依然矢志不渝的前进
原博客链接:http://blog.csdn.net/wuxiushu
展开
-
三个博弈论算法分析
主要讨论三个比较常见的博弈游戏Bash Game,Nim Game和Wythoff Game,较为领人惊叹的是,他们最后都是通过数论或者自然数性质完美解决:Bash Game:同余理论Nim Game:异或理论Wythoff Game:黄金分割(1)Bash Game:一堆n个物品,两人轮流取,每次取1至m个,最后取完者胜 比如10个物品,转载 2017-04-27 14:51:22 · 843 阅读 · 0 评论 -
51nod 1050 循环数组最大子段和(DP)
基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题N个整数组成的循环序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的连续的子段和的最大值(循环序列是指n个数围成一个圈,因此需要考虑a[n-1],a[n],a[1],a[2]这样的序列)。当所给的整数均为负数时和为0。例如:-2,11,-4原创 2017-03-31 01:50:32 · 400 阅读 · 0 评论 -
POJ1456 Supermarket (贪心)
SupermarketTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 12801 Accepted: 5718DescriptionA supermarket has a set Prod of products on sale. It earns a原创 2017-04-17 16:31:11 · 568 阅读 · 0 评论 -
L2-010. 排座位(并查集)
布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位。无论如何,总不能把两个死对头排到同一张宴会桌旁!这个艰巨任务现在就交给你,对任何一对客人,请编写程序告诉主人他们是否能被安排同席。输入格式:输入第一行给出3个正整数:N(这里假设朋友的朋友也是朋友。但敌人的敌人并不一定就是朋友,朋友的敌人也不一定是敌人。只有单纯直接的敌对关系才是绝对不能同席的。输出格式:原创 2017-03-24 17:09:56 · 447 阅读 · 0 评论 -
L2-009. 抢红包(排序)
没有人没抢过红包吧…… 这里给出N个人之间互相发红包、抢红包的记录,请你统计一下他们抢红包的收获。输入格式:输入第一行给出一个正整数N(4),即参与发红包和抢红包的总人数,则这些人从1到N编号。随后N行,第i行给出编号为i的人发红包的记录,格式如下:K N1 P1 ... NK PK其中K(0 i是抢到红包的人的编号,Pi(> 0)是其抢到的红包金额(以分为单位)。原创 2017-03-24 15:59:55 · 756 阅读 · 0 评论 -
L2-005. 集合相似度(set集合)
给定两个整数集合,它们的相似度定义为:Nc/Nt*100%。其中Nc是两个集合都有的不相等整数的个数,Nt是两个集合一共有的不相等整数的个数。你的任务就是计算任意一对给定集合的相似度。输入格式:输入第一行给出一个正整数N(4),是集合中元素的个数;然后跟M个[0, 109]区间内的整数。之后一行给出一个正整数K(输出格式:对每一对需要计算的集合,在一行中输出原创 2017-03-24 15:08:06 · 981 阅读 · 0 评论 -
L1-027. 出租
下面是新浪微博上曾经很火的一张图:一时间网上一片求救声,急问这个怎么破。其实这段代码很简单,index数组就是arr数组的下标,index[0]=2 对应 arr[2]=1,index[1]=0 对应 arr[0]=8,index[2]=3 对应 arr[3]=0,以此类推…… 很容易得到电话号码是18013820100。本题要求你编写一个程序,为任何一个电话号码生成这段代原创 2017-03-24 14:07:44 · 375 阅读 · 0 评论 -
L1-031. 到底是不是太胖了
据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。真实体重与标准体重误差在10%以内都是完美身材(即 |真实体重-标准体重| 输入格式:输入第一行给出一个正整数N(输出格式:为每个人输出一行结论:如果是完美身材,输出“You are wan mei!”;如果太胖了,输出“You are tai pang le!”;否则输出“You原创 2017-03-24 13:35:27 · 650 阅读 · 0 评论 -
L1-006. 连续因子
一个正整数N的因子中可能存在若干连续的数字。例如630可以分解为3*5*6*7,其中5、6、7就是3个连续的数字。给定任一正整数N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。输入格式:输入在一行中给出一个正整数N(131)。输出格式:首先在第1行输出最长连续因子的个数;然后在第2行中按“因子1*因子2*……*因子k”的格式输出最小的连续因子序列,原创 2017-03-24 13:18:28 · 681 阅读 · 0 评论 -
L1-009. N个数求和
本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数“分子/分母”的形式给出的,你输出的和也必须是有理数的形式。输入格式:输入第一行给出一个正整数N(输出格式:输出上述数字和的最简形式 —— 即将结果写成“整数部分 分数部分”,其中分数部分写成“分子/分母”,要求分子小于分母,且它们没有公因子。如果结果的整数部分为0,则只输出分数部分。输入样例1:原创 2017-03-24 11:23:57 · 688 阅读 · 0 评论 -
Ackerman函数
维基百科:阿克曼函数http://zh.wikipedia.org/wiki/%E9%98%BF%E5%85%8B%E6%9B%BC%E5%87%BD%E6%95%B8阿克曼函数是非原始递归函数的例子;它需要两个自然数作为输入值,输出一个自然数。它的输出值增长速度非常高,仅是(4,3)的输出已大得不能准确计算。1920年代后期,数学家大卫·希尔伯特的学生Gabriel Sudan和转载 2017-03-23 22:12:31 · 1717 阅读 · 2 评论 -
FZU1019 猫捉老鼠 (BFS)
Problem 1019 猫捉老鼠Time Limit: 1000 mSec Memory Limit : 32768 KB Problem Description一只猫和一只老鼠在10*10的迷宫中。迷宫中的每个方格可以是空的,或者含有障碍。猫和老鼠可以进入任意一个空的方格中。当他们相遇时,猫和老鼠在同一个方格中。但是,无论猫或老鼠都不能进入有障碍的方格。我们可原创 2017-04-28 17:04:50 · 1445 阅读 · 0 评论 -
HDU1035 Robot Motion(BFS)
Robot MotionTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 10399 Accepted Submission(s): 4868Problem DescriptionA robot原创 2017-04-18 14:40:53 · 363 阅读 · 0 评论 -
HDU5540 Secrete Master Plan(模拟)
Secrete Master PlanTime Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total Submission(s): 1179 Accepted Submission(s): 694Problem DescriptionMaster原创 2017-04-29 12:48:25 · 567 阅读 · 0 评论 -
郑轻ACM 1734: 堆(DFS)
DescriptionInputOutputSample Input3110310 5 31 21 351 2 3 4 53 12 12 42 5Sample OutputYesNoYes#include #include #include #include #define mem(_, __) mem原创 2017-05-03 21:13:35 · 599 阅读 · 0 评论 -
郑轻ACM 1733: 旋转图像
DescriptionInputOutputSample Input22 3111000903 3111101111180Sample Output010101111101111对所有的数据进行相应的旋转即可。#include #include #include #include #define m原创 2017-05-03 20:20:38 · 493 阅读 · 0 评论 -
郑轻 1727: 数列游戏 (规律题)
DescriptionInputOutputSample Input12Sample OutputAlice题意:给定一个数列,每次两个人可以取出一个数和这个数的除数,并把们它删除,最后一个把数取完的获胜,问谁最后会获得胜利!!思路:推理了几个,发现一个坑爹的规律,无论如何选取,最后获胜的都是A原创 2017-05-03 19:19:47 · 827 阅读 · 0 评论 -
郑轻ACM 1726: 迷宫(BFS)
Description在很多 RPG (Role-playing Games) 游戏中,迷宫往往是非常复杂的游戏环节。通常来说,我们在走迷宫的时候都需要花非常多的时间来尝试不同的路径。但如果有了算法和计算机的帮助,我们能不能有更快的方式来解决这个问题?我们可以进行一些尝试。现在我们有一个 N 行 M 列的迷宫。迷宫的每个格子如果是空地则可以站人,如果是障碍则不行。在一个格子上,我们可以原创 2017-05-03 13:23:09 · 697 阅读 · 0 评论 -
HDU2214 函数图像
在数学中,我们经常会遇到,关于函数的问题,在画一些函数的图像的时候,最长用的方法就是“描点法”。 “描点法” 的具体步骤如下: > 计算出函数在某些特定点的值 > 在坐标系中标记出这些点 > 用平滑的曲线连接这些点 但是,在实际的操作中,我们会发现,前两部的计算量还是相当大的,所以,我们想编写一个程序,能够在一个坐标系中直接的画出各点。 为了简化这个问题,原创 2017-04-17 13:13:20 · 697 阅读 · 0 评论 -
HDU4788 Hard Disk Drive
Yesterday your dear cousin Coach Pang gave you a new 100MB hard disk drive (HDD) as a gift because you will get married next year. But you turned on your computer and the operating system (OS) tol原创 2017-05-02 19:54:07 · 606 阅读 · 0 评论 -
HDU2191 (多重背包) 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
悼念512汶川大地震遇难同胞——珍惜现在,感恩生活Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 28832 Accepted Submission(s): 12043Problem Description原创 2017-04-20 13:06:06 · 366 阅读 · 0 评论 -
ZOJ3878 onvert QWERTY to Dvorak
Edward, a poor copy typist, is a user of the Dvorak Layout. But now he has only a QWERTY Keyboard with a broken Caps Lock key, so Edward never presses the broken Caps Lock key. Luckily, all the ot原创 2017-05-01 10:16:18 · 605 阅读 · 0 评论 -
HDU2955 Robberies(01背包)
RobberiesTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 23140 Accepted Submission(s): 8529Problem DescriptionThe aspiring Ro原创 2017-04-18 22:07:06 · 368 阅读 · 0 评论 -
HDU2555 人人都能参加第30届校田径运动会了
人人都能参加第30届校田径运动会了Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3095 Accepted Submission(s): 1102Problem Description杭州师范大学第2原创 2017-04-18 19:27:48 · 605 阅读 · 0 评论 -
L2-015. 互评成绩
学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩。系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩。本题就要求你编写这个互评系统的算分模块。输入格式:输入第一行给出3个正整数N(34,学生总数)、k(3输出格式:按非递减顺序输出最后得分最高的M个成绩,保留小数点后3位。分数间有1个空格,行首尾不得有多余空格原创 2017-03-23 16:06:27 · 531 阅读 · 0 评论 -
L2-008. 最长对称子串
对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定"Is PAT&TAP symmetric?",最长对称子串为"s PAT&TAP s",于是你应该输出11。输入格式:输入在一行中给出长度不超过1000的非空字符串。输出格式:在一行中输出最长对称子串的长度。输入样例:Is PAT&TAP symmetric?输出样例:11原创 2017-03-23 15:49:01 · 685 阅读 · 0 评论 -
[编程题]数字翻转(大数加法)
对于一个整数X,定义操作rev(X)为将X按数位翻转过来,并且去除掉前导0。例如:如果 X = 123,则rev(X) = 321;如果 X = 100,则rev(X) = 1.现在给出整数x和y,要求rev(rev(x) + rev(y))为多少? 输入描述:输入为一行,x、y(1 ≤ x、y ≤ 1000),以空格隔开。输出描述:输出rev(rev(x) +原创 2017-01-24 11:27:10 · 811 阅读 · 0 评论 -
[编程题]连续最大和(基础DP)
一个数组有 N 个元素,求连续子数组的最大和。 例如:[-1,2,1],和最大的连续子数组为[2,1],其和为 3 输入描述:输入为两行。第一行一个整数n(1 <= n <= 100000),表示一共有n个元素第二行为n个数,即每个元素,每个整数都在32位int范围内。以空格分隔。输出描述:所有连续子数组中和最大的值。输入例子:3-1 2 1输出例原创 2017-01-23 10:26:57 · 520 阅读 · 0 评论 -
[编程题] 买苹果
小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每袋和8个每袋的包装(包装不可拆分)。 可是小易现在只想购买恰好n个苹果,小易想购买尽量少的袋数方便携带。如果不能购买恰好n个苹果,小易将不会购买。 输入描述:输入一个整数n,表示小易想购买n(1 ≤ n ≤ 100)个苹果输出描述:输出一个整数表示最少需要购买的袋数,如果不能买恰好n个苹果则输出-1原创 2017-01-22 18:53:39 · 652 阅读 · 0 评论 -
[编程题] 有趣的数字
小Q今天在上厕所时想到了这个问题:有n个数,两两组成二元组,差最小的有多少对呢?差最大呢?输入描述: 输入包含多组测试数据。 对于每组测试数据: N - 本组测试数据有n个数 a1,a2...an - 需要计算的数据 保证: 1<=N<=100000,0<=ai<=INT_MAX. 输出描述:对于每组数据,输出两个数,第一原创 2017-01-22 18:27:29 · 1729 阅读 · 0 评论 -
线性表顺序存储的基本操作
/*线性表的操作主要包括如下几个:初始化,插入,删除,查找(单个元素所在的位置,某个位置的具体元素,查找所有的元素),判断是否为空,两个线性表合并*//// 当需要对线性表进行修改的时候,要传递线性表变量的地址。否则的话,只需要传递传递变量即可/// 至于原因: 想想当初自定义函数中对两个元素进行交换的实现#include #include typedef int ElemTyp原创 2017-01-17 13:22:56 · 660 阅读 · 0 评论 -
求解最长回文字符串的方法
回文串是指aba、abba、cccbccc、aaaa这种左右对称的字符串。输入一个字符串Str,输出Str里最长回文子串的长度。Input输入Str(Str的长度 Output输出最长回文子串的长度L。Input示例daabaacOutput示例5求最长回文字符串的长度,只介绍几种自己经常用到的算法。1.中心扩展法#inclu原创 2017-02-04 19:53:02 · 678 阅读 · 0 评论 -
使用C++来求解二维卷积
#include #include #include #include using namespace std;int n, m, a[100][100], b[100][100];void fanzhuan(){ // 把m赋值给k,防止对后续操作产生影响 int k = m; for(int i = 0;i < m;i ++) {原创 2016-12-25 17:05:04 · 1676 阅读 · 0 评论 -
算法设计与分析练习题(拯救Amaze)
题目描述很清楚,主要意思就是从p这个点走到a这个点,k为金刚,如果碰见会被一次性咬死,所以可以把所有的金刚所在的点都当做是不能走的点。d为野狗,第一次并不会被咬死,第二次会被咬死,所以,要控制只能被狗咬一次,毕竟第二次就死翘翘了。r表示道路,可以走。找出是否有从p走到a的一条通路,如果有,则输出Yes,否则,输出No。 用的深搜,对于深搜的时间复杂度怎么计算本人并不是太了解,还好不是在线原创 2016-11-28 20:17:33 · 2351 阅读 · 0 评论 -
回溯扫盲
何为回溯??下面是百度释意。回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。用回溯算法解决问题的一般步骤为:1、定义一个解空间,它包含问题的解。所谓解空间,就是一个求解范围,比如:要从一个房间找到某样东西,已经事先知道是哪个房间,没有必要把所有的房间都进行一次判断。2、利用适于搜索的原创 2016-11-06 11:18:15 · 341 阅读 · 0 评论 -
POJ 3009 深搜+回溯
Curling 2.0Time Limit: 1000MS Memory Limit: 65536KB 64bit IO Format: %lld & %lluSubmit StatusDescriptionOn Planet MM-21, after their Olympic games this year, cu原创 2016-11-06 15:37:13 · 664 阅读 · 0 评论 -
[编程题] 构造回文(基础DP)
给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?输出需要删除的字符个数。输入描述:输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000. 输出描述:对于每组数据,输出一个整数,代表最少需要删除的字符个数。输入例子:abcdagoogle原创 2017-01-22 17:31:23 · 784 阅读 · 0 评论 -
算法基础-字符移位(逻辑)
小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。你能帮帮小Q吗?输入描述:输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000. 输出描述:对于每组数据,输出移位后的字符串。输入例子:AkleBiCeilD输出例子:原创 2017-01-22 17:11:46 · 545 阅读 · 0 评论 -
星际穿越(数学)
航天飞行器是一项复杂而又精密的仪器,飞行器的损耗主要集中在发射和降落的过程,科学家根据实验数据估计,如果在发射过程中,产生了 x 程度的损耗,那么在降落的过程中就会产生 x2 程度的损耗,如果飞船的总损耗超过了它的耐久度,飞行器就会爆炸坠毁。问一艘耐久度为 h 的飞行器,假设在飞行过程中不产生损耗,那么为了保证其可以安全的到达目的地,只考虑整数解,至多发射过程中可以承受多少程度的损耗?原创 2017-01-21 19:57:54 · 460 阅读 · 0 评论 -
怎么判断循环队列是否为空?或者已经满了?
现有一个循环队列,其队头指针为 front,队尾指针为 rear,循环队列的总长度为 N,问怎么判断循环队列满了?正确答案: D front==rearfront==rear+1front==rear%nfront==(rear+1)%n当队列不为空时,front指向队列的第原创 2017-03-29 18:39:28 · 38417 阅读 · 2 评论