自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

博客停更,请到"再见,CSDN"文章中找新博客地址

博客停更,请到"再见,CSDN"文章中找新博客地址

  • 博客(42)
  • 收藏
  • 关注

原创 |洛谷|NOIP2010|动态规划|P1541 乌龟棋

http://www.luogu.org/problem/show?pid=1541设f[i][j][k][l]为四种卡片的使用次数,则不难得出状态转移方程f[i,j,k,l]=max{[i-1,j,k,l],f[i,j-1,k,l],f[i,j,k-1,l],f[i,j,k,l-1]}+s[i*1+j*2+k*3+l*4];#include#include#include#

2016-09-30 20:58:40 421

原创 |洛谷|动态规划|P1855 榨取kkksc03

http://www.luogu.org/problem/show?pid=1855题目描述一大堆,其实就是一个二维背包问题。#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int n,m,t;int mi[105], ti[105];int

2016-09-30 19:19:40 562

原创 |洛谷|动态规划|P1736 创意吃鱼法

http://www.luogu.org/problem/show?pid=1736先O(nm)预处理r, l, up数组分别代表在右边连续出现几个0,在左边连续出现几个0,在上边连续出现几个0即得转移方程,f[i][j]为以i,j作为正方形的右下顶点的最大吃鱼数主对角线:f[i][j]=min(f[i-1][j-1],left[i][j-1],up[i-1][j])+1副对角

2016-09-30 19:09:22 557

原创 |洛谷|分治|P1908 逆序对

http://www.luogu.org/problem/show?pid=1908归并排序求解即可,经典问题#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int A[40005];int T[40005];int cnt = 0;int

2016-09-28 21:47:44 632

原创 |洛谷|DFS|P1433 吃奶酪

http://www.luogu.org/problem/show?pid=1433直接DFS即可,有一个剪枝#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;struct pos { double x; double y;}p[30];

2016-09-27 21:11:34 772

原创 |洛谷|分治|P1010 幂次方

http://www.luogu.org/problem/show?pid=1010将十进制数字转为二进制,依靠二进制转十进制的思想分治即可#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int n;int f(int a){ int

2016-09-25 22:05:47 550

原创 |洛谷|分治|数学|P1226 取余运算||快速幂

http://www.luogu.org/problem/show?pid=1226快速幂取余。#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int poww(int a, int b, int c){ int ans = 1, base =

2016-09-25 14:33:15 357

原创 |洛谷|DFS|P1019 单词接龙

http://www.luogu.org/problem/show?pid=1019先3层循环算出两个单词接上的长度,然后DFS最长路即可注意重合部分可以随意取,2、3测试点就有这个坑#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;char c

2016-09-25 12:21:06 384

原创 |洛谷|数学|P1029 最大公约数和最小公倍数问题

http://www.luogu.org/problem/show?pid=1029由lcm(a,b)=a*b/gcd(a,b)得 a*b = lcm(a,b)*gcd(a,b)设给出两个整数为x,y,要求的两个数为R,Q 原式变为R*Q=x*y变形得 Q = (x*y)/R;然后枚举P,就可以求出Q,继而得出解#include#include#include#inclu

2016-09-24 23:30:15 399

原创 |洛谷|数学|P1088 火星人

http://www.luogu.org/problem/show?pid=1088求字典序第k大全排列,可以用C++的next_permutation函数#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int a[10005];int main

2016-09-24 22:54:30 349

原创 |洛谷|数学|P1147 连续自然数和

http://www.luogu.org/problem/show?pid=1147利用了数学公式求等差数列之和公式(s1+sn)*n/2#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int main(){ int n; sca

2016-09-24 21:36:32 550

原创 |洛谷|数学|P1403 约数研究

http://www.luogu.org/problem/show?pid=1403#sub枚举一个数的约数肯定超时,那我们反过来想。枚举1~n里约数i有多少个,那么很明显如果n=10,那么约数1有10/1=10个,约数2有10/2=5个,约数3有10/3=3个……#include#include#include#include#define ms(i,j) memset(i,

2016-09-24 15:16:25 335

原创 |洛谷|DFS|P1101 单词方阵

http://www.luogu.org/problem/show?pid=1101循环找到一个y后向8个方向搜索,直到搜到g,然后按照方向反向填充即可#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;const int dx[8] = {0,1,0

2016-09-24 13:23:30 295

原创 |洛谷|BFS|P1141 01迷宫

http://www.luogu.org/problem/show?pid=1141用bfs求连通分量,每个连通分量的答案都是一样的#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;const int dx[4] = {0,1,0,-1},

2016-09-24 13:21:43 476

转载 |洛谷|递推|P1025 数的划分

http://www.luogu.org/problem/show?pid=1025设F(i,j)为用j个数组成i,答案为F(7,3)的话。一个思路是,对于F(7,3)=不含1的方案数①+含1的方案数②。F(i,j)=a(i,j)+b(i,j)子问题①a(i,j)=F(i-j,j),如其中一个方案2 2 3不含1,则把组成它的j个数都减去1,变成1 1 2的方案

2016-09-23 22:40:13 644

原创 |洛谷|二分|P1316 丢瓶盖

http://www.luogu.org/problem/show?pid=1316二分答案后贪心地check即可#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int a,b;int x[100005];int l = 1,r = 0;bo

2016-09-23 22:37:19 449

原创 |洛谷|二分|P1182 数列分段Section II

http://www.luogu.org/problem/show?pid=1182用二分答案,check即可#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int n,m;int a[100005];bool check(int x)//大于

2016-09-21 22:09:14 620

原创 |洛谷|排序|P1309 瑞士轮

http://www.luogu.org/problem/show?pid=1309#sub第一次快排,之后用a,b记录输赢的集合,赢了的和输了的的相对排序一致,用归并排序#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;struct ps{ i

2016-09-20 22:10:51 402

原创 |洛谷|动态规划|P1115 最大子段和

http://www.luogu.org/wiki/show?name=%E9%A2%98%E8%A7%A3+P1115动态规划思想,这里可以免去数组。#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int main(){ int n;

2016-09-18 21:48:32 401

原创 |洛谷|模拟|P1086 花生采摘

http://www.luogu.org/problem/show?pid=1086由于必须采摘当前最大植株,所以这道题水了很多,当如果摘了当前点返回不够时间的话,那这个点就不能摘。#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;struct fr

2016-09-17 17:59:06 340

原创 |洛谷|模拟|P1181 数列分段Section I

http://www.luogu.org/problem/show?pid=1181水题不解释#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int main(){ int n,m; int ans = 1; int to

2016-09-17 17:57:44 251

原创 |洛谷|贪心|P1208 [USACO1.3]混合牛奶 Mixing Milk

http://www.luogu.org/problem/show?pid=1208贪心地优先选择最便宜的牛奶#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int p[5005], a[5005];void qs(int l, int r) {

2016-09-17 17:56:29 285

原创 |洛谷|DFS|P1605 迷宫

http://www.luogu.org/problem/show?pid=1605求方案数用DFS。#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;const int dx[4] = {1,0,-1,0}, dy[4] = {0,1,0,-1}

2016-09-17 17:54:59 282

原创 |洛谷|贪心|P1803 凌乱的yyy

http://www.luogu.org/record/lists?pid=P1803把比赛抽象为区间,然后按照区间右边排序,然后选择第一个区间,之后再选择不与第一个区间相交的区间即可,以此例推#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;str

2016-09-17 17:52:18 345

原创 |洛谷|NOIP2006|排序|P1059 明明的随机数

http://www.luogu.org/problem/show?pid=1059这里用的桶排序,自动完成排序+去重,因为生成的数不大于1000,数据不大#include#include#include#include#define ms(i,j) memset(i, j, sizeof(i));using namespace std;int a[105];bool v[1

2016-09-16 20:07:32 332

原创 |洛谷|排序|P1781 宇宙总统

http://www.luogu.org/problem/show?pid=1781排序即可,注意要用字符串,注意字符串的交换方法以及比较大小,n#include#include#include#include#define ms(i,j) memset(i, j, sizeof(i));using namespace std;int xh[25];char ch[25][1

2016-09-16 19:55:26 615

原创 |Hdu 1561|动态规划|The more, The Better

http://acm.hdu.edu.cn/showproblem.php?pid=1561此题与选课一题一样,讲解看http://blog.csdn.net/Darost/article/details/52555114#include#include#include#include#define ms(i,j) memset(i, j, sizeof(i));usin

2016-09-16 15:43:09 373

原创 |洛谷|动态规划|P2014 选课

http://www.luogu.org/problem/show?pid=2014(注意题目数据范围有误,建议开数组到2000)经典树形依赖背包问题。因为可能出现森林,所有要建立一个虚结点0,将森林中所有树的根节点作为结点0的儿子f[i][j]表示以i为根选j个课程f[u][j] = max(f[u][j], f[u][j-k]+f[v][k]); //v是u的儿子#in

2016-09-16 13:13:22 957 1

原创 |POJ 2342|动态规划|Anniversary party

http://poj.org/problem?id=2486树形DP基础题,具体看注释。设状态f[i][0]为i不来,f[i][1]为i要来f[r][1] +=  f[i][0];   //r要来,i为r的下属f[r][0] +=  max(f[i][0], f[i][1]); //r不来,i为r的下属#include#include#include#include

2016-09-14 23:27:39 398

原创 |洛谷|动态规划|P1282 多米诺骨牌

http://www.luogu.org/problem/show?pid=1282设f[i][j]为前i个骨牌差值为j的最小翻牌次数初始值全部赋值为∞,然后f[1][a[1]-b[1]]=0, f[1][b[1]-a[i]]=1;对应于第一张牌不翻和翻状态转移方程:f[i][j] = min(f[i-1][j-(a[i]-b[i])], f[i-1][j-(b[i]-a[i])]

2016-09-12 21:50:51 2639

原创 |洛谷|动态规划|P1108 低价购买

http://www.luogu.org/problem/show?pid=1108第一问就是最长下降子序列,第二行是下降子序列的个数(不能相同)当前i加上前面的方案数当且仅当相同的数只加最后一个用ok[j]表示价格为j的股票已经加过,逆推可以保证上面的条件#include#include#include#include#define ms(i,j) memset(i, j

2016-09-12 21:00:01 439

原创 |洛谷|动态规划|P1164 小A点菜

http://www.luogu.org/record/lists?pid=P116401背包方案数#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int n,m;int a[105];int f[10005];int main(){ scanf

2016-09-10 21:05:14 410

原创 |洛谷|动态规划|P1616 疯狂的采药

http://www.luogu.org/problem/show?pid=1616和采药很像,这里只不过改成了完全背包#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int t,m;int ti[10005], pi[10005];int f[100005];

2016-09-10 21:02:32 336

原创 |NOIOJ|动态规划|2985:数字组合

http://noi.openjudge.cn/ch0206/2985/简单01背包方案数问题#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int n,t;int a[30];int f[1005];int main(){ scanf("%d%d"

2016-09-10 21:00:24 394

原创 |NOIOJ|动态规划|9268:酒鬼

http://noi.openjudge.cn/ch0206/9268/ 思路同核电站一题,只是这里不是求方案数,一样的#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int a[705];int f[705][5];int main(){ int n

2016-09-10 20:58:40 509

原创 |NOIOJ|动态规划|9267:核电站

http://noi.openjudge.cn/ch0206/9267/设f[i][j]为前i个坑现在已经连续埋了j个核燃料的方案,f[1][0] = 1; f[1][1] = 1;#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int n,m;long long

2016-09-10 20:56:07 691 1

原创 |洛谷|NOIP2009|模拟|P1067 多项式输出

http://www.luogu.org/problem/show?pid=1067看似简单的模拟题,但是许多细节要考虑。具体看代码注释,这样写比较清晰#include#include#include#include#define ms(i,j) memset(i, j, sizeof(i));using namespace std;int n;int main(){ s

2016-09-07 22:00:05 289

原创 |洛谷|NOIP2011|模拟|P1003 铺地毯

http://www.luogu.org/problem/show?pid=1003不要用搜索,范围不行。用扫描的形式求解即可#include #include #include #define ms(i,j) memset(i, j, sizeof(i));using namespace std;int n;int x[10005], y[10005], g[10005]

2016-09-07 21:27:21 326

原创 |NOIOJ|动态规划|8462:大盗阿福

http://noi.openjudge.cn/ch0206/8462/f[i] = max(f[i-1], f[i-2]+a[i])f[i-1]表示不抢这家店,f[i-2]+a[i]表示抢这家店#include #include #include #define ms(i,j) memset(i, j, sizeof(i));typedef long long ll;usi

2016-09-04 17:08:37 1067

原创 |Tyvj|动态规划|1023 奶牛的锻炼

http://tyvj.cn/p/1023比较简单的区间DP,注意如果要休息,那就必须得一直休息到疲劳值为0,则f[i][0]可以从f[i-k][k]转移而来ps: 由于Tyvj现在503,代码取不下来,等好了以后再补

2016-09-03 22:32:09 761

空空如也

空空如也

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

TA关注的人

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