自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

aozil_yang的博客

点滴记录,记录成长,帮助你我!

  • 博客(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 4052

原创 习题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 463

原创 习题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 1808

原创 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 1128

原创 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关注的人

提示
确定要删除当前文章?
取消 删除