自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 幸运号码 数位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

原创 51nod 1021 石子归并

题目:https://cn.vjudge.net/contest/178832#problem/G给你n堆石子,每堆石子只能和相邻的石子合并,合并的代价为两堆石子的质量,求合并成一堆石子的最小代价。思路:如果这道题不是和相邻的石子合并,那么便可以用贪心,每次取最小的两堆;和相邻的话必须全局考虑。用dp[i][j]表示第i堆到第j堆的最小代价。dp[i][j]=dp[i][k]+dp[k

2017-09-13 15:14:09 191

原创 51nod 1042数位DP 精度

题目:https://cn.vjudge.net/contest/178832#problem/F这道题和之前的差别就是这题的数位比较大,要用long long ,开始pre ,af忘记设置了,一直wa。。。。。。。还有就是注意0的特殊情况。#includeusing namespace std;typedef long long ll;ll solve(ll n,ll cmp){

2017-09-11 23:01:12 190

原创 51 nod 循环最大字段和 DP

题目:https://cn.vjudge.net/contest/178832#problem/E和最小子段和不一样,这道题可以尾首相连,就是在一个圈里找到最大子段和。思路:可以找到最小子段和,用all-最小子段和,就是有首尾相连的最大字段,然后再和没有首尾相连的最大字段比较,最大者就是答案。#include#include#includeusing namespace std;

2017-09-11 20:52:43 189

原创 51 nod 最小1的数量 数位DP

题目:https://cn.vjudge.net/contest/178832#problem/C输入1个整数n,计算从1到n各个位上1出现的次数。思路:如果暴力,肯定是会超时的。所以要从数位上找规律。221看10位上出现1的情况,10- 19,110-119,210-219.假如212,十位上10 19,110-119,210-212由百位和各位决定。再举些例子便可以发现,当该位n=

2017-09-11 20:40:59 159

原创 51nod 1101 换零钱 完全背包计数

题目:https://cn.vjudge.net/contest/178832#problem/HN元钱换为零钱,有多少不同的换法?币值包括1 2 5分,1 2 5角,1 2 5 10 20 50 100元。例如:5分钱换为零钱,有以下4种换法:1、5个1分2、1个2分3个1分3、2个2分1个1分4、1个5分(由于结果可能会很大,输出Mod 10^9 + 7的结

2017-09-11 15:41:03 255

原创 HDU 1421 DP计数

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1421给n个物品,取k对物品,每队物品消耗体力为两个物品质量差的平方。求取完k对的最小消耗体力;思路:这道题是一道DP计数的题目,这种题一般用DP[I][J]的形式解答。表示前i个物品,取j对的最小消耗。这里有个关系a所以可以把原来的n个数重新从小到大排列一下,例如  1 3 4 6,dp[

2017-09-11 15:08:30 165

原创 UVA 11825 状态压缩DP

题目:https://cn.vjudge.net/contest/171116#problem/C一个黑客攻击了一个节点,接下来每次能攻击相邻的节点,求该黑客能攻击的最大节点。Sample Input32 1 22 0 22 0 141 11 01 31 20Sample OutputCase 1: 3Case 2: 2

2017-09-10 15:26:31 181

原创 uva 10635 最长公共子序转最长上升子序

题目:https://cn.vjudge.net/contest/171116#overview两个人在n*n的方块里,从1到n*n,每个人经过一串数字,且只能经过一次,求最长公共子序。思路:开始看到这道题,觉得很简单,是最长公共子序,但是一做就TL,因为n*n,dp[n*n][n*n]超内存了,然后看了别人的博客,学会了把该问题转化成最长上升子序。最长上升子序:1 4 2 3 5 ,

2017-09-10 14:49:56 154

原创 hdu 1171多重背包

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1171给你一堆物品的价值和数量,让你把这堆物品尽量平均分成两堆。思路:这是道多重背包的模板题。先计算总的价值,然后求dp[all/2]求出不超过一半价值的最大价值。刚开始wa里,因为数组开小了。注意物品种类,数量,价值,dp应该开到3者的乘积。dp[i]表示价值不超过i时的最大价值。一种方法是把

2017-09-10 13:19:16 231

原创 HDU 1159 最长公共子序列

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1159输入两个字符串,求两个字符串的最长公共子序列。abcfbc abfcab例如 a b f b就是公共子序,即从左到右的顺序字符是一样的。思路:这是道最长公共子序模板体。可以用dp[i][j]表示第一个字符串到i位置和第二个字符串到j位置时的公共子序数量。当a[i]==b[j]时,dp[i+1]

2017-09-10 10:21:07 183

原创 HDU1114 存钱罐 完全背包

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1114给你一个存钱罐的空的质量和存满钱的质量,给你每种硬币的质量和价值,让你算出它的最小价值。310 11021 130 5010 11021 150 301 6210 320 4 Sample OutputThe minimum amount

2017-09-09 23:16:30 423

原创 HDU 1203 乘法 01背包

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1203Speakless有n万元,申请m个学校,每个学校有花费的金额和入学的可能性,求他最少进入一个学校的可能性。Sample Input10 34 0.14 0.25 0.30 0 Sample Output44.0%思路:先弄清楚怎么求

2017-09-09 22:45:43 254

原创 HDU 1176 掉馅饼

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1176在0-10的坐标上有n个馅饼掉落,求能接到的最多馅饼数。初始位置在5,每秒移动一格。Sample Input65 14 16 17 27 28 30 Sample Output4思路:例子中移动路径为6 7 8。得到4个馅饼。 刚开始想

2017-09-09 21:34:09 184

原创 hdu1257 最小拦截系统

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1257一套导弹系统能够从低

2017-09-09 21:13:46 158

原创 HDU 1074 状态压缩DP 作业扣分

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1074Ignatius刚刚从第30届ACM / ICPC回到学校。 现在他做了很多功课。 每个老师给他一个交付作业的最后期限。 如果Ignatius在截止日期之后交作业,老师将减少他的最后考试成绩,1天1分。 正如你所知,做作业总是需要很长时间。 所以Ignatius希望你帮助他安排做作业的顺序,以减少

2017-09-09 17:00:03 473

原创 HDU1087 跳棋

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1087输入一串数字,从左到右,从start到end,每次经过一个数字,必须比上一次大,求经过的数字最大和。思路:简单DP。DP[i]表示从start跳到第i个时的最大和。dp[i]=max(dp[j]+a[i]),j#include#include#includeusing names

2017-09-09 16:39:11 271

原创 HDU1069 猴子叠木块

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1069研究人员有n种类型的块,并且每种类型的块都是无限制的。 每个i型块是具有线性尺寸(xi,yi,zi)的矩形固体。 块可以重新定向,使得它的三个维度中的任何两个确定基座的尺寸,而另一个尺寸是高度。他们想要确保通过堆放块可能的最高的塔可以到达屋顶。 问题在于,在建造塔架时,只能将一块块放置在另一块

2017-09-09 16:11:59 339

原创 HDU 1058 素数因子DP

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1058 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27, ... shows the first 20 humble numbers. 一个数的因子由2,3,5,7构成,则这个数为 humble number

2017-09-09 15:37:40 207

原创 1024 多组最大字段和 循环使用优化

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1024这道题是最小子段和加强版。hdu1003是求出一组最大字段和,现在是求出m组最大子段和。Sample Input1 3 1 2 32 6 -1 4 -2 3 -2 3 Sample Output68思路:这道题是典型的DP题。刚开始不会,参考

2017-09-09 14:48:55 154

原创 HDU 1003最大子段和

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1003输入N,r然后输入n个数字,求这些数字中的最大子段和,并标明起点终点。Input:25 6 -1 5 4 -77 0 6 -1 1 -6 7 -5 Sample OutputCase 1:14 1 4Case 2:7 1 6思路:简单的D

2017-09-09 11:38:21 203

原创 HDU1170 格式题

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1170输入符号和2个整数,求2个整数的运算。思路:注意下除法的格式,不能整除取2位。用printf时注意是%.2lf#includeint main(){ int n, a, b; char c; scanf("%d", &n); while (n--)

2017-09-09 11:22:57 415

原创 HDU 1164 找素数因子

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1164输入一个数字,将该数字分解成多个素数相乘。思路:先将65535内的所有素数都保存下来,然后用该数从小到大除,能整除的数输出,更新该数。#include#includeusing namespace std;bool su(int m){ for (int i = 2; i

2017-09-09 11:14:38 269

原创 HDU1163 快速幂+九余数

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1163输入n,求n的n次方的九余数。思路:将快速幂和九余数定理结合一下。#include#includeusing namespace std;int mode_xp(int a, int b, int n){ long long ret = 1, temp; temp =

2017-09-09 11:05:56 226

原创 HDU 1106字符串处理

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1106输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出输入:00

2017-09-09 10:54:34 181

原创 HDU1098 规律题

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1098 f(x)=5*x^13+13*x^5+k*a*x,似的任意的x,使得65/f(x)为整数。给出k,找到最小的a。思路:因为x是任意的,所以取x为1,f(1)=18+k*a,(18+k*a)%65==0,a肯定不能一直取下去,把模运算分配律一下,(a+b)%c==(a%c+b%c)

2017-09-09 10:38:37 238

原创 hdu1070 计算牛奶价格

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1070Ignatius每天喝200mL奶,现在给许多牛奶的牌子,价格,分量,牛奶最多喝5天,及超过1000ML的当做1000ML算。少于200L的不算。计算最省钱的。思路:简单模拟计算出每个牛奶能喝的天数,拿价格除以天数就是单价。注意OUTPUT里写了If there are more

2017-09-08 23:26:36 283

原创 HDU1061 快速慕水题

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1061输入n,求出n的n次的个位。如3,3*3*3=27,答案为7.思路:这是一道快速幂的模板题。介绍一下快速慕。将一个数字转化成二进制,简称二分思想。如10为1010,求10次的时候,可以分为求2次方,2次方再平方,变成4次方,再变成8次方,这样本来乘8次,现在只要3次。将乘法转换成加法。10

2017-09-08 23:06:13 233

原创 hdu1056 堆积木

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1056去

2017-09-08 22:57:03 346

原创 HDU1048 凯撒加密

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1048输入一串字符,对其进行加密。将一个字母换成ascii+21的字母。若超过Z,返回到A继续。#include#includeint main(){ char a[20], b[150]; while (gets(a)) { mems

2017-09-08 22:31:10 401

原创 HDU1040 sort以下

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1040输入数组,按照从小到大输出。#include#include#includeusing namespace std;int main(){ int T; int a[1005]; scanf("%d", &T); while (T--)

2017-09-08 22:23:11 163

原创 HDU1037

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1037输入3个数字,如果找出大于168的第一个数字。没有的话输出   NO CRASH有的话输出   CRASH X#includeusing namespace std;int main(){ int a, b, c; while (cin >>

2017-09-08 22:16:53 256

原创 HDU1032 模拟

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1032  1.      input n    2.      print n    3.      if n = 1 then STOP    4.           if n is偶数 then n= 3n + 1    5.           else n=-

2017-09-08 22:04:01 375

原创 HDU1029 找中间数

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1029输入一串数字,确保里面有一个数字出现次数超过一半,输出这个数字。如,输入51 3 2 3 3输出3.思路:若某个数出现次数一半,中间数肯定是该数。#include#includeusing namespace std;int a[1000000];int main(){

2017-09-08 21:54:34 338

原创 HDU1028 母函数+DP求分解因子+背包

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1028输入一个整数,求它能被分解成几个几个因子的方法数。如4的分解方法共有5种。  4 = 4;  4 = 3 + 1;  4 = 2 + 2;  4 = 2 + 1 + 1;  4 = 1 + 1 + 1 + 1;思路:由于这道题最多就120,所以这道题可以用母函数,也可以用DP。先说母函数,用于组合的题...

2017-09-08 20:45:59 476

原创 HDU1021 水题

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1021判断菲波那切数列是否能被3整除。#includeusing namespace std;int a[1000005] = { 0 };int main(){ a[0] = 7; a[1] = 11; for (int i = 2; i 1000005; i

2017-09-08 20:28:18 260

原创 HDU1019 水题+精度

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1019输入一串数字,求着串数字的最小公倍数。结果在32位以内。思路:首先求最小公倍数的求法为a*b/ab的最小公约数,多个数就是重复这一过程。求最小公约数可以用辗转相除法。但是注意a,b都是32位,相乘就超过了,所以可以用long long类型,或者a/ab在最小公约数再*b.辗转相除法:

2017-09-08 20:18:09 198

原创 HDU1017 水题

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1017给出N,表示例子数。接下来给出n,m,0 思路:暴力及计算即可。#include int main(){ int N; int n, m; scanf("%d", &N); while (N--)

2017-09-08 20:10:53 233

原创 HDU1014 格式题

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1014seed(x+1) = [seed(x) + STEP] % MOD给出temp和mode,看是否能产生0-mode-1的所有数。输出要求temp和mode占10个字节位置。思路:给一个种子0,然后执行mode-1次,看是否能产生1~mode-1中所有数。输出格式用%10d.#incl

2017-09-08 19:59:20 496

空空如也

空空如也

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

TA关注的人

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