自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 收藏
  • 关注

原创 51 Nod1113 矩阵快速幂

题目:给出一个N * N的矩阵,其中的元素均为正整数。求这个矩阵的M次方。由于M次方的计算结果太大,只需要输出每个元素Mod (10^9 + 7)的结果。思路:这道题是快速幂乘法的升级版,普通快速幂是整数,这个只是转换成整数乘法而已。#include#include#includeusing namespace std;typedef long long ll;#define

2017-09-19 16:36:35 332

原创 51 nod 最大公约数的最小公倍数

题目:给出N个正整数,找出N个数两两之间最大公约数的最大值。例如:N = 4,4个数为:9 15 25 16,两两之间最大公约数的最大值是15同25的最大公约数5。思路:给你两个数,让你求公约数,我们都知道用辗转相除法。辗转相除法: int cal(int a,int b){return b?cal(b,a%b):a;}但是注意这题,求多个数,n个数两两进行比较,n

2017-09-19 15:57:22 322

原创 多重背包模板题 背包问题V2

题目:https://cn.vjudge.net/contest/180638#problem/B有N种物品,每种物品的数量为C1,C2......Cn。从中任选若干件放在容量为W的背包里,每种物品的体积为W1,W2......Wn(Wi为整数),与之相对应的价值为P1,P2......Pn(Pi为整数)。求背包能够容纳的最大价值。思路:利用二分法优化多重背包,将多重背包转化成

2017-09-17 11:39:27 723

原创 51 nod1051最大和子矩阵

题目:https://cn.vjudge.net/contest/180638#problem/A一个M*N的矩阵,找到此矩阵的一个子矩阵,并且这个子矩阵的元素的和是最大的,输出这个最大的值。例如:3*3的矩阵:-1 3 -12 -1 3-3 1 2和最大的子矩阵是:3 -1-1 31 2思路:这题的基础题是最大子

2017-09-17 11:28:22 230

原创 编辑距离

题目:https://cn.vjudge.net/contest/178832#problem/A编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。例如将kitten一字转成sitting:sitten (k->

2017-09-17 10:24:47 249

原创 CCF 2016-12 04编码(DP+哈夫曼树)

题目:给定一段文字,已知单词a1, a2, …,an出现的频率分别t1, t2, …, tn。可以用01串给这些单词编码,即将每个单词与一个01串对应,使得任何一个单词的编码(对应的01串)不是另一个单词编码的前缀,这种编码称为前缀码。  使用前缀码编码一段文字是指将这段文字中的每个单词依次对应到其编码。一段文字经过前缀编码后的长度为:  L=a1的编码长度×t1+a2的编码长度×

2017-09-16 23:23:01 440

原创 CCF 2016 09-4 修高铁 最短路径+最小生成树

问题描述  G国国王来中国参观后,被中国的高速铁路深深的震撼,决定为自己的国家也建设一个高速铁路系统。  建设高速铁路投入非常大,为了节约建设成本,G国国王决定不新建铁路,而是将已有的铁路改造成高速铁路。现在,请你为G国国王提供一个方案,将现有的一部分铁路改造成高速铁路,使得任何两个城市间都可以通过高速铁路到达,而且从所有城市乘坐高速铁路到首都的最短路程和原来一样长。请你告诉G国国王在这些

2017-09-16 22:41:17 1294

原创 CCF 2017 03 04修地铁(dijkstra变形)

题目:A市有n个交通枢纽,其中1号和n号非常重要,为了加强运输能力,A市决定在1号到n号枢纽间修建一条地铁。  地铁由很多段隧道组成,每段隧道连接两个交通枢纽。经过勘探,有m段隧道作为候选,两个交通枢纽之间最多只有一条候选的隧道,没有隧道两端连接着同一个交通枢纽。  现在有n家隧道施工的公司,每段候选的隧道只能由一个公司施工,每家公司施工需要的天数一致。而每家公司最多只能修建一条候选隧

2017-09-16 21:33:49 734

原创 POJ2661 指数题log

题目:https://cn.vjudge.net/contest/180176#problem/B现在计算的内存每10年翻倍,从1960年的4bit 到 1970年8bit。。用一个整数N,n!内存=2^位数思路:先求出该年份的芯片位数s.然后可以将指数转换成对数,两边同取log10,log10 (n!)=log10 1+log 10 (2)+...log10(n),变成加法,右边为1

2017-09-16 17:10:34 351

原创 hdu 2110 资产分割 母函数

题目:http://acm.hdu.edu.cn/showproblem.php?pid=2110给你n个物品的数量和价值,找到分割出总资产1/3的分割数。思路:母函数模板,注意结果要%10000,所以每次更新c1的时候就mod10000#include#includeusing namespace std;#define maxn 10010int c1[maxn], c

2017-09-16 16:48:09 207

原创 HDU 1521 排列 指数母函数

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1521有n种物品,并且知道每种物品的数量。要求从中选出m件物品的排列数。例如有两种物品A,B,并且数量都是1,从中选2件物品,则排列有"AB","BA"两种。思路:指数型母函数模板题。#include#include#includeusing namespace s

2017-09-16 16:37:37 260

原创 hdu 2065 指数型母函数

题目:http://acm.hdu.edu.cn/showproblem.php?pid=2065医学界发现的新病毒因其蔓延速度和Internet上传播的"红色病毒"不相上下,被称为"红色病毒",经研究发现,该病毒及其变种的DNA的一条单链中,胞嘧啶,腺嘧啶均是成对出现的。现在有一长度为N的字符串,满足一下条件:(1) 字符串仅由A,B,C,D四个字母组成;(2) A出现偶数次

2017-09-16 16:00:07 412

原创 10 扫雷游戏

题目:扫雷游戏是一款十分经典的单机小游戏。在 nn行 mm 列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有多少个是地雷格。游戏的目标是在不翻出任何地雷格的条件下,找出所有的非地雷格。现在给出 nn 行 mm 列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。注:一个

2017-09-15 14:57:45 656

原创 9 单词排序

题目:小红学会了很多英文单词,妈妈为了帮小红加强记忆,拿出纸、笔,把 NN 个单词写在纸上的一行里,小红看了几秒钟后,将这张纸扣在桌子上。妈妈问小红:“你能否将这 NN 个单词按照字典排列的顺序,从小到大写出来?”小红按照妈妈的要求写出了答案。现在请你编写程序帮助妈妈检查小红的答案是否正确。注意:所有单词都由小写字母组成,开头字母全都不相同,单词两两之间用一个空格分隔。思路:字典序,sor

2017-09-15 14:55:54 1624

原创 8 易彰彪的一张表

题目:易彰彪最近有点奇怪,一向爱打游戏他最近居然盯着一张全是大小写字母的表在看,好像在找什么东西。他说,这是他女神给他的一张表,他需要回答女神的问题——在忽略大小写(即大写字母和小写字母视为同一字母)的情况下,是否能在表中找到某一连续的字符串(第 ii 行的尾部和第 i + 1i+1 行的头部视为相连)。但是英语不好的易彰彪一看到字母就头晕,聪明的你能帮他解决这个问题吗思路:先把字符都

2017-09-15 14:52:11 658

原创 7 局部求和

题目:输入 2020 个整数,输出其中能被数组中其它元素整除的那些数组元素。#includeusing namespace std;int main(){ int a[22]; for (int i = 0; i < 20; i++) cin >> a[i]; for (int i = 0; i < 20; i++) { for (int j = 0; j

2017-09-15 14:50:13 648

原创 6 进制转换

题目:输入一个十进制正整数,然后输出它所对应的八进制数。思路:除8倒取余。#includeusing namespace std;void eight(int n){ int yu = n % 8; if (n / 8 == 0) cout << n; else { eight(n / 8); cout << yu; }}int main(){ int n;

2017-09-15 14:48:46 827

原创 5 汽水瓶子

题目:有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是 55瓶,方法如下:先用 99 个空瓶子换 33 瓶汽水,喝掉 33 瓶满的,喝完以后 44 个空瓶子,用 33 个再换一瓶,喝掉这瓶满的,这时候剩 22 个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用 33 个空瓶子换一瓶满的还给老板。如果小张手上有 n

2017-09-15 14:45:44 252

原创 4 歌曲比赛

题目:我们在“渊子数”的题目中已经了解了渊子是个什么样的人了,他在大一的时候参加过工商学院的“英语聚乐部”。告诉你个秘密,这个俱乐部是个好地方,不但活动精彩而且有 MM。 这不,英语俱乐部举办了一个叫做“英文金曲大赛”的节目。这个节目有好多人参加,这不,成绩出来了,渊子当是很勇敢,自告奋勇接下了算出大家的总得分的任务。当时有 77 个评委,每个评委都要给选手打分,现在要求去掉一个最高分和去

2017-09-15 14:44:05 723

原创 3 次数最多字符(修改)

题目:一个字符串中可能包含a~z中多个字符串,并且可能会有重复,如 String data ="abcdaaa",这道字符串出现次数醉倒的字母就是a,出现了4次。现在用户输入一个字符串,我们需要求出出现次数最多的字母,并且求出次数,如果存在字母中出现最多的次数不唯一,但所有出现次数最多的字母及次数都要打印出来。输入:输入是一行字符串,就是我们所需统计的字符串,例如我们输入 “abc

2017-09-15 14:38:19 405

原创 2 判断手机号码

题目:手机号码是一串数字,长度为11为,并且第一位必须是1,现在给出一个字符串,我们需要判断这个字符串是否符合手机格式输入:输入是一个字符串输出:若该字符串符合手机格式,输出1,否则输出0思路:#include#includeusing namespace std;int main(){ char a[1000]; cin >> a; int flag

2017-09-15 14:36:30 666

原创 1 判断日期

题目:我们知道一年有12个月,每个月最多有31天,年有平年和闰年之分,本题目要求如果输入一个日期,程序需要判断用户输入的日期是否正确。输入:用户输入是三个数字,分别表示年,月和日。 例如 2007 10 21 ,表示2007年10月21日,这个输入经过判断是正确的。又例如输入 1993 11 38 ,这个输入经过判断是错误的,因为日期不能超过31天。输出:程序的输出分为两种

2017-09-15 14:33:30 1118

原创 HDU1709 天平

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1709给你一些砝码的质量,求出1到总质量中不能表达的质量的个数和具体的值。思路:和普通的母函数不一样的地方就是砝码可以放在重物那一边,所以多了个c2[abs(j-k)]+=c1[j];#include#include#includeusing namespace std;#define

2017-09-14 17:41:19 224

原创 HDU 1398 找零钱

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1398这道题给你一个金额,让你求特定金额的银币的组合数量。思路:母函数题。#include&lt;iostream&gt;using namespace std;int main(){ int c1[305], c2[305]; int maxn; while (cin &gt...

2017-09-14 17:18:03 324

原创 HDU 1085 个数限制母函数

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1085给你一定数量的1,2,5分的硬币,找到不能得到的最小的硬币数量。母函数标准题。#include#includeusing namespace std;int c1[10000], c2[10000];int main(){ int num1, num2, num5,i,j;

2017-09-14 17:10:29 220

原创 hdu2082 母函数+背包

题目:https://cn.vjudge.net/contest/178527#problem/A假设有x1个字母A, x2个字母B,..... x26个字母Z,同时假设字母A的价值为1,字母B的价值为2,..... 字母Z的价值为26。那么,对于给定的字母,可以找到多少价值&lt;=50的单词呢?单词的价值就是组成一个单词的所有字母的价值之和,比如,单词ACM的价值是1+3+14=18,单词HD...

2017-09-14 17:00:41 406

原创 51 nod 最高奖励(贪心+优先队列)

题目:https://cn.vjudge.net/contest/178387#problem/H有N个任务,每个任务有一个最晚结束时间以及一个对应的奖励。在结束时间之前完成该任务,就可以获得对应的奖励。完成每一个任务所需的时间都是1个单位时间。有时候完成所有任务是不可能的,因为时间上可能会有冲突,这需要你来取舍。求能够获得的最高奖励。思路:这道题和HDU1789是一样的,都是给你

2017-09-14 15:01:32 200

原创 HDU 2079 多重背包组合计数

题目:http://acm.hdu.edu.cn/showproblem.php?pid=2079 又到了选课的时间了,xhd看着选课表发呆,为了想让下一学期好过点,他想知道学n个学分共有多少组合。你来帮帮他吧。(xhd认为一样学分的课没区别)思路:这道题用背包的我就不说了,很容易理解,关键是DP如何理解。开始我想着用二进制优化多重背包写,但是样例就错,一直想不通为啥,问了别人,才发现...

2017-09-13 21:57:31 664

原创 HDU 1789

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1789现在有N门作业,每门有截止日期和扣的分数,找出最少扣分的方法。思路:先找到截止日期最晚的,然后往前推,先做价值最大的,这样就能最大限度减少损失。#include#includeusing namespace std;const int maxn = 1000 + 5;struct

2017-09-13 21:08:24 243

原创 聪明的木匠 取最小

题目:https://cn.vjudge.net/contest/178387#problem/G可以利用优先队列,每次取最小的两个值。#include #include using namespace std;int main() { priority_queue, greater > q; int n, tmp; while (cin >> n) { for (int

2017-09-13 20:51:20 197

原创 任务执行顺序

题目:https://cn.vjudge.net/contest/178387#problem/F有N个任务需要执行,第i个任务计算时占Rii个空间,而后会释放一部分,最后储存计算结果需要占据Oii个空间(Oii < Rii)。例如:执行需要5个空间,最后储存需要2个空间。给出N个任务执行和存储所需的空间,问执行所有任务最少需要多少空间。思路:有很多不同存储内存的任务,你要

2017-09-13 20:33:00 444

原创 51 nod 1428 活动安排 (线段的最大重合条数)

题目:https://cn.vjudge.net/contest/178387#problem/E有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动之间不能交叠,求要安排所有活动,最少需要几个教室?  思路:这道题可以抽象为线段的题,n条线段,求在某个位置重合的最大条数。可以先按照右端点升序,对每条线段,若它右边的线段开始时间在该条线段之前,表示和

2017-09-13 19:50:11 320

原创 51nod 1133不重合线段

题目:https://cn.vjudge.net/contest/178387#problem/DX轴上有N条线段,每条线段有1个起点S和终点E。最多能够选出多少条互不重叠的线段。(注:起点或终点重叠,不算重叠)。思路:这题和重叠的题很类似,先左端点排序,然后从右向左计算,如果当前线段的右值小于liml(当前最左值),则更新Liml,计数+1.从右向左是因为确保能到达最大长度。

2017-09-13 19:27:57 220

原创 独木船

题目:https://cn.vjudge.net/contest/178387#problem/Cn个人,已知每个人体重。独木舟承重固定,每只独木舟最多坐两个人,可以坐一个人或者两个人。显然要求总重量不超过独木舟承重,假设每个人体重也不超过独木舟承重,问最少需要几只独木舟? 思路:先排序,从最大开始,如果当前最小的+最大的可以,则他们一条船,否则最大的一条船。#include#i

2017-09-13 17:17:47 360 1

原创 51nod 1091 线段重合

题目:X轴上有N条线段,每条线段包括1个起点和终点。线段的重叠是这样来算的,10201020和12251225的重叠部分为12201220。给出N条线段的起点和终点,从中选出2条线段,这两条线段的重叠部分是最长的。输出这个最长的距离。如果没有重叠,输出0。思路:先把所有线段按照左端点从小到大排序,然后求出两两之间的重叠大小。现在最右边的线段是limr,如果新的线段最右边大于limr,更

2017-09-13 17:10:54 199

原创 51 nod 走格子

题目:https://cn.vjudge.net/contest/178387#problem/A有编号1-n的n个格子,机器人从1号格子顺序向后走,一直走到n号格子,并需要从n号格子走出去。机器人有一个初始能量,每个格子对应一个整数Aii,表示这个格子的能量值。如果Aii > 0,机器人走到这个格子能够获取Aii个能量,如果Aii < 0,走到这个格子需要消耗相应的能量,如果机器人的

2017-09-13 17:02:07 210

原创 uva10905 最大整数组合

题目:https://cn.vjudge.net/contest/170620#problem/B4个整数为123,124,56,90,则可以制作以下整数:1231245690,1241235690,5612312490,9012312456,9056124123等等。实际上可以制造这样的整数。 但有一件事是肯定的那个9056124123是可以做的最大的整数。找到这个最大的整数。

2017-09-13 16:44:07 228

原创 UVA 10382 贪心 最少圆

题目:https://cn.vjudge.net/contest/170620#problem/A给你一块草地,有长,宽,给你n个喷头,每个喷头给出中心和喷洒范围。求覆盖这片草地的最小碰头数量。思路:这是经典的贪心题,从左到右,把所有喷头排序,现在第一个喷头的最右边距离为right,找到剩下喷头中喷头能覆盖right的,且喷头右边的距离最大的喷头,然后更新最右边的距离right。这里注

2017-09-13 16:30:51 311

原创 幸运号码 数位DP

题目:https://cn.vjudge.net/contest/178832#problem/J1个长度为2N的数,如果左边N个数的和 = 右边N个数的和,那么就是一个幸运号码。例如:99、1230、123312是幸运号码。给出一个N,求长度为2N的幸运号码的数量。由于数量很大,输出数量 Mod 10^9 + 7的结果即可。思路:这道题2n位数是对称的,所以可以先

2017-09-13 15:55:34 255

原创 51 nod 1270 数组最大代价

题目:https://cn.vjudge.net/contest/178832#problem/I数组A包含N个元素A1, A2......AN。数组B包含N个元素B1, B2......BN。并且数组A中的每一个元素Ai,都满足1   (公式表示所有两个相邻元素的差的绝对值之和)给出数组B,计算可能的最大代价S。思路:由例子我们可以想到,ai每个数要么取bi,要么

2017-09-13 15:32:48 167

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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