<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[digu4869的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/digu4869</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; digu4869]]></copyright><item><title><![CDATA[Cyclic Nacklace HDU - 3746]]></title><link>https://blog.youkuaiyun.com/digu4869/article/details/101654792</link><guid>https://blog.youkuaiyun.com/digu4869/article/details/101654792</guid><author>digu4869</author><pubDate>Fri, 25 Aug 2017 20:00:00 +0800</pubDate><description><![CDATA[给你一个字符串，要求将字符串的全部字符最少循环2次需要添加的字符数。
没有优化的next数组的应用。

#include&lt;iostream&gt;
#include&lt;cstdio&gt;
#include&lt;cstring&gt;
#include&lt;algorithm&gt;
#include&lt;string&gt;
#define maxn 1...]]></description><category></category></item><item><title><![CDATA[模拟题 Right turn SCU - 4445]]></title><link>https://blog.youkuaiyun.com/digu4869/article/details/101654791</link><guid>https://blog.youkuaiyun.com/digu4869/article/details/101654791</guid><author>digu4869</author><pubDate>Thu, 17 Aug 2017 21:33:00 +0800</pubDate><description><![CDATA[用一个二维数组记录从四个方向到达该障碍物的次数，如果同一个方向到达该障碍物两次，那么就一定可以转无数次弯。
做题的时候心态要好啊。。

#include&lt;iostream&gt;
#include&lt;cstdio&gt;
#include&lt;cstring&gt;
#include&lt;algorithm&gt;
#include&lt;queue&gt;...]]></description><category></category></item><item><title><![CDATA[状态DP Doing Homework HDU - 1074]]></title><link>https://blog.youkuaiyun.com/digu4869/article/details/101654789</link><guid>https://blog.youkuaiyun.com/digu4869/article/details/101654789</guid><author>digu4869</author><pubDate>Wed, 16 Aug 2017 16:28:00 +0800</pubDate><description><![CDATA[题目大意： 给出n种作业，每个作业的名字，截止时间和所需的时间，超过截止时间的作业，每超过一天要扣一分，要你合理的安排作业的顺序使得扣掉的分数最少。
思路：一直觉得可以用贪心，然而不对。1代表完成作业，0代表还未完成的作业，枚举所有的状态，推出并更新下一个状态。例如3个作业的话0（000）可以推出 001，010，100这三种状态，而011可以由 001或者010推出，选这两者中的最小...]]></description><category></category></item><item><title><![CDATA[Dp Milking Time POJ - 3616]]></title><link>https://blog.youkuaiyun.com/digu4869/article/details/101654790</link><guid>https://blog.youkuaiyun.com/digu4869/article/details/101654790</guid><author>digu4869</author><pubDate>Sun, 13 Aug 2017 19:14:00 +0800</pubDate><description><![CDATA[题目大意： 一头奶牛产奶的时间是1-n,农夫有m个时间段可以去收集奶，每次收了奶之后奶牛要休息R时间，求农夫可以收的奶的最大值。
每次自己要想蛮久都想不出怎么去推，还是做的题太少啦。。。一看题解 知道dp[i]表示区间[1,i]所能得到牛奶的最大值后，一下就写出来啦。
思路类似于求最长递增子序列。


#include&lt;iostream&gt;
#include&lt;...]]></description><category></category></item><item><title><![CDATA[区间DP Treats for the Cows POJ - 3186]]></title><link>https://blog.youkuaiyun.com/digu4869/article/details/101654786</link><guid>https://blog.youkuaiyun.com/digu4869/article/details/101654786</guid><author>digu4869</author><pubDate>Sun, 13 Aug 2017 18:56:00 +0800</pubDate><description><![CDATA[题意：给长度为n的序列，每次只能从首或尾取一个数，第i次取的数权值为(数值*i)，求取完所有的数可以达到的最大权值。
网上都说是简单dp,自己想了很久都没想明白。。。
从后面推前面,由小区间推大区间。dp[i][j]代表要取的区间[i,j] ,区间长度为n的序列，从区间长度为1开始推，dp[i][i]=n*a[i]表示最后一个取走的数是i；
当区间长度为2时 dp[i][i+1]=...]]></description><category></category></item><item><title><![CDATA[DP Help Jimmy POJ - 1661]]></title><link>https://blog.youkuaiyun.com/digu4869/article/details/101654788</link><guid>https://blog.youkuaiyun.com/digu4869/article/details/101654788</guid><author>digu4869</author><pubDate>Fri, 11 Aug 2017 16:38:00 +0800</pubDate><description><![CDATA[Help Jimmy" 是在下图所示的场景上完成的游戏。

场景中包括多个长度和高度各不相同的平台。地面是最低的平台，高度为零，长度无限。Jimmy老鼠在时刻0从高于所有平台的某处开始下落，它的下落速度始终为1米/秒。当Jimmy落到某个平台上时，游戏者选择让它向左还是向右跑，它跑动的速度也是1米/秒。当Jimmy跑到平台的边缘时，开始继续下落。Jimmy每次下落的高度不能超过...]]></description><category></category></item><item><title><![CDATA[Dales and Hills Gym - 101411D]]></title><link>https://blog.youkuaiyun.com/digu4869/article/details/101654784</link><guid>https://blog.youkuaiyun.com/digu4869/article/details/101654784</guid><author>digu4869</author><pubDate>Fri, 04 Aug 2017 12:57:00 +0800</pubDate><description><![CDATA[Problem D. Dales and HillsInput le: dales.inOutput le: dales.outTime limit: 2 secondsMemory limit: 256 megabytesLet's consider a number sequence a1; · · · ; aN . We call the continuous subsequenc...]]></description><category></category></item><item><title><![CDATA[Kids and Prizes Gym - 101411K]]></title><link>https://blog.youkuaiyun.com/digu4869/article/details/101654787</link><guid>https://blog.youkuaiyun.com/digu4869/article/details/101654787</guid><author>digu4869</author><pubDate>Thu, 03 Aug 2017 21:25:00 +0800</pubDate><description><![CDATA[http://www.aichengxu.com/other/1640203.htm
题目大意： N个奖品，M个人，求被给出去的奖品数量的期望。
对于M个人来说，拿到奖品的概率为Y[i],不拿到奖品的概率为N[i], 因为这两个事件是对立的，所以 N[i]=1-Y[i];
第i个拿到奖品的人概率，可由第i-1个人没拿到奖品和拿到奖品两种状态推出来。
Y[i]=N[i-1]*Y[i...]]></description><category></category></item><item><title><![CDATA[并查集 How Many Answers Are Wrong HDU - 3038]]></title><link>https://blog.youkuaiyun.com/digu4869/article/details/101654782</link><guid>https://blog.youkuaiyun.com/digu4869/article/details/101654782</guid><author>digu4869</author><pubDate>Wed, 02 Aug 2017 10:02:00 +0800</pubDate><description><![CDATA[给你M个区间和，问你有几个是与前面矛盾的。
pre[i]=j 表示点i能到达的最左端的点是j,sum[i]=k,表示i点到j点的距离为k.

#include&lt;iostream&gt;
#include&lt;cstdio&gt;
#define maxn 200005
using namespace std;
int pre[maxn],sum[maxn];
in...]]></description><category></category></item><item><title><![CDATA[warshall 求传递闭包 Cow Contest POJ - 3660]]></title><link>https://blog.youkuaiyun.com/digu4869/article/details/101654785</link><guid>https://blog.youkuaiyun.com/digu4869/article/details/101654785</guid><author>digu4869</author><pubDate>Sun, 30 Jul 2017 19:38:00 +0800</pubDate><description><![CDATA[题目大意：一群牛比赛，每场两只牛对打，并分出胜负，现在问你能确定几只牛的战斗力排名。
如果a&gt;b,b&gt;c,那么c一定小于a.用wallshall算法算出比某个元素大的元素，如果比该元素大的和比该元素小的数量为n-1,那么就可以确定排名。（即该元素可以到达任何元素）

#include&lt;iostream&gt;
#include&lt;cstdio&gt;
#i...]]></description><category></category></item><item><title><![CDATA[贪心 No Time for Dragons Gym - 101149B]]></title><link>https://blog.youkuaiyun.com/digu4869/article/details/101654783</link><guid>https://blog.youkuaiyun.com/digu4869/article/details/101654783</guid><author>digu4869</author><pubDate>Sat, 29 Jul 2017 10:11:00 +0800</pubDate><description><![CDATA[国王要杀死n条龙，杀死每条龙需要a人，会战死b人，问杀死n条龙至少需要多少人。
因为杀死每条龙需要的人是一定的且战死的人是一定的，所以先杀战死的人最少的龙。

#include&lt;iostream&gt;
#include&lt;cstdio&gt;
#include&lt;cstring&gt;
#include&lt;algorithm&gt;
#define ma...]]></description><category></category></item><item><title><![CDATA[Bellman-Ford变形  Currency Exchange POJ - 1860]]></title><link>https://blog.youkuaiyun.com/digu4869/article/details/101654780</link><guid>https://blog.youkuaiyun.com/digu4869/article/details/101654780</guid><author>digu4869</author><pubDate>Wed, 26 Jul 2017 21:23:00 +0800</pubDate><description><![CDATA[题意：货币交换，有n种货币，m个货币兑换的地点，每一个地点提供两种货币的兑换且每一个地点的汇率不同，需要手续费，Rab(一单位货币a可以兑换货币b的数量）
现如今有货币s共有数量t,要求判断是否可以通过兑换使得货币s增加。如果图中有一个正权回路，可以通过这条回路不断增加某种货币的值，最后在增加货币s的值。
Bellman-Ford可以判断有没有负权回路。
建图，判断有没有正权回路。...]]></description><category></category></item><item><title><![CDATA[Heavy Transportation POJ - 1797]]></title><link>https://blog.youkuaiyun.com/digu4869/article/details/101654781</link><guid>https://blog.youkuaiyun.com/digu4869/article/details/101654781</guid><author>digu4869</author><pubDate>Wed, 26 Jul 2017 10:33:00 +0800</pubDate><description><![CDATA[题目大意：有n个城市，m条道路，在每条道路上有一个承载量，现在要求从1到n城市最大承载量，而最大承载量就是从城市1到城市n所有通路上的最大承载量

#include&lt;iostream&gt;
#include&lt;cstdio&gt;
#include&lt;cstring&gt;
#include&lt;algorithm&gt;
#define maxn 1005...]]></description><category></category></item><item><title><![CDATA[最短路变形  Frogger POJ - 2253]]></title><link>https://blog.youkuaiyun.com/digu4869/article/details/101654778</link><guid>https://blog.youkuaiyun.com/digu4869/article/details/101654778</guid><author>digu4869</author><pubDate>Wed, 26 Jul 2017 10:30:00 +0800</pubDate><description><![CDATA[题意：给定一点到另一点的所有路径中，至少需要跳的最大距离，不是最短路问题，路可以很长，跳的石头很多，要求是跳的最大距离。
用dis数组存储到达每一点至少需要跳的最大距离。

#include&lt;iostream&gt;
#include&lt;cstdio&gt;
#include&lt;cstring&gt;
#include&lt;algorithm&gt;
#in...]]></description><category></category></item><item><title><![CDATA[最短路 Til the Cows Come Home POJ - 2387]]></title><link>https://blog.youkuaiyun.com/digu4869/article/details/101654779</link><guid>https://blog.youkuaiyun.com/digu4869/article/details/101654779</guid><author>digu4869</author><pubDate>Wed, 26 Jul 2017 10:21:00 +0800</pubDate><description><![CDATA[最短路模板题，有一个坑，用dijkstra算法时两点之间可能有多条路，要存取最短的那条。
dijkstra:

#include&lt;iostream&gt;
#include&lt;cstdio&gt;
#include&lt;algorithm&gt;
#include&lt;cstring&gt;
#define inf 0x3f3f3f
using namesp...]]></description><category></category></item><item><title><![CDATA[Song Jiang's rank list UVALive - 7073]]></title><link>https://blog.youkuaiyun.com/digu4869/article/details/101654777</link><guid>https://blog.youkuaiyun.com/digu4869/article/details/101654777</guid><author>digu4869</author><pubDate>Fri, 21 Jul 2017 09:25:00 +0800</pubDate><description><![CDATA[题目：按照所杀的敌人排名，所杀敌人相等的时候字典序小的排名在上，然后M个询问。
sort可以对结构体排序，数组字符串比较s1&lt;s2,strcmp(s1,s2)=-1,string类字符串大小比较可以直接比。

#include&lt;iostream&gt;
#include&lt;cstdio&gt;
#include&lt;algorithm&gt;
#inclu...]]></description><category></category></item><item><title><![CDATA[简单BFS +打印路径 迷宫问题 POJ - 3984]]></title><link>https://blog.youkuaiyun.com/digu4869/article/details/101654776</link><guid>https://blog.youkuaiyun.com/digu4869/article/details/101654776</guid><author>digu4869</author><pubDate>Wed, 19 Jul 2017 15:11:00 +0800</pubDate><description><![CDATA[#include&lt;cstdio&gt;
#include&lt;iostream&gt;
#include&lt;cstring&gt;
#include&lt;string&gt;
#include&lt;stack&gt;
#include&lt;queue&gt;
using namespace std;
int nex[4][2]= { {0,1},{1,...]]></description><category></category></item><item><title><![CDATA[BFS Fire! UVA - 11624]]></title><link>https://blog.youkuaiyun.com/digu4869/article/details/101654773</link><guid>https://blog.youkuaiyun.com/digu4869/article/details/101654773</guid><author>digu4869</author><pubDate>Wed, 19 Jul 2017 15:09:00 +0800</pubDate><description><![CDATA[在一个矩形方阵里面，一个人要从一个位置走向另一个位置，其中某些地方有火源，每过一分钟，火源就会点燃相邻的点，同时相邻的点也变成了火源。人不能通过有火的点。问一个人能够安全地走到边界去最短时间多少？Unfortunately, portions of the maze havecaught on fire。portions of是一些的意思。
两次bfs，首先从着火的点开始BFS进行预...]]></description><category></category></item><item><title><![CDATA[FZU - 2150 Fire Game（两点bfs）]]></title><link>https://blog.youkuaiyun.com/digu4869/article/details/101654771</link><guid>https://blog.youkuaiyun.com/digu4869/article/details/101654771</guid><author>digu4869</author><pubDate>Mon, 17 Jul 2017 10:31:00 +0800</pubDate><description><![CDATA[题目大意： 给你一个n*m的图，里面有草也有空地（#代表草）。现在有两个人各在一块草地点火要烧掉这些草，并且燃烧的草可以向上下左右四个方向蔓延，问最少多长时间可以将所有的草都烧完，不能全部烧完输出-1.
两个起点的BFS，感觉和求最短路差不多，依次枚举两个起点，找到步数最多的那个草地，再从每次枚举的结果中找最小的。

#include&lt;iostream&gt;
#inclu...]]></description><category></category></item><item><title><![CDATA[BFS 三维 Dungeon Master POJ - 2251]]></title><link>https://blog.youkuaiyun.com/digu4869/article/details/101654775</link><guid>https://blog.youkuaiyun.com/digu4869/article/details/101654775</guid><author>digu4869</author><pubDate>Sun, 07 May 2017 19:26:00 +0800</pubDate><description><![CDATA[三维的BFS求最短路。
自己测试数据用的输出最后一定要注释掉，交了很多次居然一直Output Limite,居然一直都没有发现多输出了数据，被自己蠢哭。
以后一定要仔细检查输出。

#include&lt;iostream&gt;
#include&lt;cstdio&gt;
#include&lt;cstring&gt;
#include&lt;algorithm&gt;...]]></description><category></category></item></channel></rss>