- 博客(34)
- 收藏
- 关注
原创 南阳理工学院 ACM OJ-- 题目6 喷水装置(一) (贪心暴力)
喷水装置(一)时间限制:3000 ms | 内存限制:65535 KB难度:3描述现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它为中心的半径为实数Ri(0<Ri<15)的圆被湿润,这有充足的喷水装置i(1<i<600)个,并且一定能把草坪全部湿润,你要做的是:选择尽量少的喷水装置,把整个草坪的全部湿润。
2016-05-31 17:29:25 4053
原创 习题10-6 UVA - 1210 Sum of Consecutive Prime Numbers 连续素数之和(滑动窗口)
大体题意:给你一个整数n(n 思路:直接素数打表,然后滑动窗口即可!当sum 小于目标时,移动右边r。发现达到目标,直接记录答案。当sum 大于目标时,直接减左边的l 最后输出ans 即可!#include#include#include#includeusing namespace std;const int maxn = 100000 + 10;
2016-05-31 17:15:50 910
原创 例题 7-6 UVA - 140 Bandwidth 带宽 (全排列暴力)
UVA 蹦了 不知道能不能过 先写上在说,不对在改吧!思路很简单:直接从输入中建立出一张图,然后全排列枚举图,在每一个全排列中遍历带宽最后更新答案!#include#include#include#include#include#include#includeusing namespace std;const int maxn = 200 + 10;const
2016-05-31 15:54:09 601
原创 习题10-5 UVA - 1213 Sum of Different Primes 不同的素数之和(DP + 素数打表)
大体题意:选择K个质数,使他们的和等于N ,问有多少种选法!思路:N不大 小于等于1120直接打一个素数表,然后dpdp[i][j] 表示 选择j 个素数 构成i 方法数。三层循环 第一层直接枚举素数, 第二层枚举选择的数量,第三层枚举构成的结果N。#include#include#include#includeusing namespace std;
2016-05-30 18:51:40 372
原创 UVA - 11636 Hello World! (STL)
题意不说了。思路:先要快速接近目标n 所以 不断取2 4 8 16 32... 直到恰好小于n为止,这时在加1就可以了STL 中的lower_bound 恰好实现这个功能!#include#include#includeusing namespace std;int a[35];void init(){ a[0] = 1; for (int i
2016-05-29 22:36:41 316
原创 习题7-7 Egyptian Fractions (HARD version) 埃及分数 (IDA*)
大体题意:在普通的埃及分数上加了 几个限制, 多给了你K个数,让你求出最后的埃及分数结果中分母不能是K个数的某个数的结果。思路:先记录一下 埃及分数算法:利用了迭代加深的搜索方式最后的分母结果记录在ans数组中,最后只需要输出ans 数组即可!首先将ans数组初始化为-1,表示没赋过值,这样在更新答案时,可以判断ans[i] == 1或者 v[i] 在dfs 函数中
2016-05-29 17:51:33 490
原创 例题7-9 UVA - 1601 && POJ 3523 The Morning after Halloween (双向BFS)
大体题意:你给一个h*w 的网格,网格上最多有三只小鬼,小鬼用小写字母abc 表示,他们的目标用ABC表示,问小鬼移动到目标最短的步数,他们可以同时走,走法有五种:上下左右和不动,其中有几种情况的走法是非法的:1.两只小鬼一步以内交换了位置。2.两只小鬼的下一步是同一个位置。其余情况合法!思路:先将不是#的位置变成标号。然后把所有空格提出来建立一张图,把初始位置
2016-05-29 13:00:01 742 1
原创 HDU 1864 最大报销额 (dp 01背包)
最大报销额Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 21586 Accepted Submission(s): 6497Problem Description现有一笔经费可以报销一定额度的发票。允许报销的
2016-05-26 02:57:49 388
原创 Codeforces Round #320 (Div. 1) [Bayan Thanks-Round] -- B. "Or" Game (容斥定理)
B. "Or" Gametime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given n numbers a1, a2, ..., an. You can perfo
2016-05-25 16:55:29 355
原创 Codeforces Round #350 (Div. 2) - B. Game of Robots (STL)
B. Game of Robotstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputIn late autumn evening n robots gathered in the chee
2016-05-25 15:13:44 489
原创 HDU 1003 Max Sum (O(N) 算法)
Max SumTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 210088 Accepted Submission(s): 49285Problem DescriptionGiven a sequence a[
2016-05-25 14:45:12 352
原创 UVA - 11536 Smallest Sub-Array (滑动窗口)
大体题意:给你n,m,k 从而会算出一个n个元素的集合,求出一个子集合的长度,其中子集合 存在X 满足X 思路:建立一个vis数组,表示每个数出现的次数,然后一个一个数的遍历,只有满足当前数符合访问次数为1 并且大小小于等于k,则cnt++然后建立一个pos表示左端的最优解的位置 寻找方法很简单 当pos位置的数 vis 大于1 或者 大小大于k 都不是最优的都应该++
2016-05-24 01:04:01 464
原创 习题8-4 UVA - 11491 Erasing and Winning 奖品的价值(滑动窗口)
大体题意:给你一个n 位的整数,让你删除其中d个数字,使得剩下的n-d个数字组成的数尽量大!问最大是多少?思路:因为n最大是100000,所以存数字要用char 数组来存,然后遍历每一位数字s[i];在建立一个char ans[maxn] 来存取答案!int cnt表示ans数组第几个数值,那么n - i 为剩下的还没遍历的数的个数,cnt 表示已经加入的数的个数,n-
2016-05-22 22:14:43 365
原创 习题 8-18 UVA - 1619 Feel Good 感觉不错 (容斥定理)
大体题意:给你一个长度为n (n 思路:思路是比较清晰的,就是有坑:用sum[i]表示 1 ...i 的和,l[i],r[i],分别表示以第 i 个数字为最小值所能扩展的最左端和最右端!最后遍历i 更新ansll ans = a[i] * (sum[r[i]] - sum[l[i]-1]);取个最大值即可!求l 和r 数组还不能暴力求,这样会超时。
2016-05-20 21:46:07 411
原创 习题8-7 UVA - 11925 Generating Permutations 生成排列(构造)
大体题意:给你n 个元素的数组,让你由1,2,3,4...n 变成所给序列,步骤都有哪些,其中步骤操作有两种:操作1:交换前两个元素。操作2:把第一个元素放到最后。思路:可以逆向考虑:由所给序列变成1,2,3,4...n这样操作1不变,操作2变为把最后一个元素放到第一个,然后逆向输出答案即可!先有一个判断是否合法的函数,循环条件是 不合法,就一直循环下去。看样例
2016-05-20 16:24:48 669
原创 例题11-5 UVA - 10048 Audiophobia 噪音恐惧症(Floyd算法)
大体题意:给你C个点 和S条边,边权威噪音值,当噪音值太大时,耳膜会受到损害! 给你一列询问,每个询问 包括u 和 v,问从u 到 v 最大噪音值 最小值是多少!思路:Floyd 求任意两点最短路,有些不同,正常的Floyd 时 g[i][j] = min(g[i][j], g[i][k] + g[k][j]);这里应该为g[i][j] = min(g[i][j],max(
2016-05-19 22:18:27 1058
原创 例题 8-3 UVA - 1152 4 Values whose Sum is 0(和为0的4个值)(二分枚举)
题意:给你4个n 元素的集合ABCD,要求分别从中选取一个元素abcd使得a + b + c + d = 0问有多少种选法!思路:先把A数组和B数组所有的组合情况都记录到tmp数组,排序,然后枚举C数组和D数组,取相反数,然后二分枚举tmp数组中值,取上界upper_bound 和取下界 lower_bound 做差即可!#include#include#includeu
2016-05-19 14:58:14 447
原创 习题8-2 UVA - 1610 Party Games 聚会游戏 (构造字符串)
大体题意:给你n 个字符串(n 是偶数),让你构造一个字符串ans,使得n个字符串中有一半字典序小于等于ans 另一半大于ans。思路:稍微借鉴了学长的博客 = = !感觉写的确实很巧妙!整体思路就是建立一个空的string 然后暴力一位一位的加字母判断就可以了!首先:先给string 数组s进行排序,在取出两个字符串u = s[n/2-1] v = s[n/2]
2016-05-19 00:12:57 438
原创 习题8-1 UVA - 1149 Bin Packing 装箱 (滑动窗口)
大体题意:给你n个物品,每个物品会告诉你重量,再告诉你背包的最大容量m,并且每个背包最多装两个物品(即使重量有剩余),问装完n个物品至少需要多少个箱子 思路:先给n个重量拍个序,然后变量l 枚举左边,变量r 枚举右边。当a[l] + a[r] 当不符合时肯定把大的重量装进去了,这时只需要r--, ++ ans 即可!最后输出ans循环条件是l 感觉有滑动窗口的味
2016-05-18 22:04:11 510
原创 HDU 1213 How Many Tables (简单的并查集)
How Many TablesTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 22769 Accepted Submission(s): 11328Problem DescriptionToday is
2016-05-18 13:44:25 286
原创 HDU 4006 The kth great number (优先队列)
The kth great numberTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Others)Total Submission(s): 9361 Accepted Submission(s): 3727Problem DescriptionXiao
2016-05-18 13:32:28 407
原创 UVA - 1605 Building for UN (思路题)
大体题意:给你n个国家,让你构造一个联合国大楼,满足不同的国家都有一对相邻的格子(要么是同层中有公共边的格子,要么是相邻层中的同一个格子。)思路:书上的思路:一共只有两层,每层都是n*n,第一层中第i行全是i国家,第二层中第i列都是国家i 暴力输出即可!这样做很巧妙!举个例子:n = 4 情况:按照这种方式是:------------第一层:AA
2016-05-17 22:19:36 350
原创 2016"百度之星" - 资格赛(Astar Round1)Problem A (乘法逆元)
Problem AAccepts: 1663Submissions: 11605Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/65536 K (Java/Others)Problem Description度熊手上有一本字典存储了大量的单词,有一次,他把所有单词组成了一个很长很
2016-05-15 20:10:31 602
原创 2016年团体程序设计天梯赛-模拟赛 L3-1. 肿瘤诊断 (三维 BFS)
L3-1. 肿瘤诊断时间限制 400 ms内存限制 65536 kB代码长度限制 8000 B判题程序 Standard 作者 陈越在诊断肿瘤疾病时,计算肿瘤体积是很重要的一环。给定病灶扫描切片中标注出的疑似肿瘤区域,请你计算肿瘤的体积。输入格式:输入第一行给出4个正整数:M、N、L、T
2016-05-15 18:39:57 1809
原创 HDU 5612 Baby Ming and Matrix games(dfs暴力)
Baby Ming and Matrix gamesTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1403 Accepted Submission(s): 382Problem DescriptionThes
2016-05-14 22:24:04 1350
原创 HDU 4355 Party All the Time (三分)
Party All the TimeTime Limit: 6000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4783 Accepted Submission(s): 1508Problem DescriptionIn the Dark
2016-05-14 20:41:44 555
原创 HDU 1198 Farm Irrigation (并查集)
Farm IrrigationTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 8691 Accepted Submission(s): 3744Problem DescriptionBenny has
2016-05-14 11:15:45 330
原创 UVA UVA - 1374 Power Calculus 快速幂计算(迭代加深搜索)
大体题意:给你一个数n,计算如何从x 经过乘法除法快速计算到 x^n。输出最短长度!思路:直接迭代加深最短长度!在dfs中,有两个参数cur 和 s 分别代表当前层数和当前的指数!只有当cur == 深度 并且 s 等于 n时 成立!当cur大于深度 剪枝!或者s × 2 ^ (maxd-cur) 说一下这里,maxd - cur 是剩余的步骤数,s为当前的数
2016-05-12 22:40:00 665
原创 HDU 4167 User Names (字符串水题)
User NamesTime Limit: 8000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 894 Accepted Submission(s): 298Problem DescriptionA university's comput
2016-05-07 19:53:36 808
原创 HDU 4165 Pills (DP卡特兰数列)
PillsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1297 Accepted Submission(s): 902Problem DescriptionAunt Lizzie takes half a
2016-05-07 17:18:31 1129
原创 POJ 1686 Lazy Math Instructor (中缀表达式计算)
Lazy Math InstructorTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 3819 Accepted: 1320DescriptionA math instructor is too lazy to grade a question in the
2016-05-05 22:33:03 713
原创 例题9-2 UVA - 437 The Tower of Babylon 巴比伦塔(DGA-DP)(已更新)
大体题意:给你n种立方体,每种都无限个,要求选择一些立方体使得高度最大,并且满足越靠上的立方体长宽严格小于下面的!每个立方体可以旋转!输出最大高度!思路:可以把立方体的属性存到Node结构体里,因为一个立方体就可以有6种状态,很少,可以手写进Node里。然后按照面积排序!最后按照DGA形式 求最长长度!if (nod[j].x dp[i] = max(dp[i],d
2016-05-04 23:56:53 502
原创 例题7-12 UVA - 1343 The Rotation Game 旋转游戏(IDA*)
题目大意:给一个棋盘,问最少进行几次旋转使得中间的数字全部相等!(并且字典序最小!)思路:借鉴了代码仓库,感觉写的很巧妙,简单记录一下!大致思路:用line [][] 二维数组给棋盘进行标号!a[] 一维数组代表当前的棋盘中棋子的标号!center[] 一维数组代表棋盘中间棋子的标号!rev[]数组进行反转列 ,减少了很多代码!先判断是否合法,合法的话直接输出。
2016-05-04 00:22:32 519
原创 例题9-1 UVA - 1025 A Spy in the Metro 城市里的间谍(DP)
题意不说了 书中说的很详细:思路:影响到决策的只有当前时间和所处的车站!用dp[i][j]表示时刻i,你在车站j,最少还需要等待的时间有三种决策:1.等一分钟!2.如果有向右的车,则搭乘向右的车!3.如果有向左的车,则搭乘向左的车!在输入m1和m2时就处理has_train 数组,has_train[i][j][0]表示有向左的车,1 表示有向右的车!则倒
2016-05-01 23:23:42 530
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人