<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sepNINE的专栏]]></title><description><![CDATA[As brief as possible]]></description><link>https://blog.youkuaiyun.com/sepNINE</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sepNINE]]></copyright><item><title><![CDATA[poj 3263 Tallest Cow 差分数列或线段树解区间修改]]></title><link>https://blog.youkuaiyun.com/sepNINE/article/details/93245102</link><guid>https://blog.youkuaiyun.com/sepNINE/article/details/93245102</guid><author>sepNINE</author><pubDate>Fri, 21 Jun 2019 23:05:02 +0800</pubDate><description><![CDATA[#include &lt;iostream&gt;
#include &lt;map&gt;
using namespace std;
const int max_n = 10024;
int c[max_n], d[max_n];
map&lt;pair&lt;int, int&gt;, bool&gt; existed;

int main() {
    int N, I, H, R;
 ...]]></description><category></category></item><item><title><![CDATA[poj1485 Fast Food 动态规划]]></title><link>https://blog.youkuaiyun.com/sepNINE/article/details/79645098</link><guid>https://blog.youkuaiyun.com/sepNINE/article/details/79645098</guid><author>sepNINE</author><pubDate>Wed, 21 Mar 2018 20:04:52 +0800</pubDate><description><![CDATA[//poj 1485
//fenix_bao
#include &amp;lt;iostream&amp;gt;

using namespace std;
const int MAXN=256,MAXK=32;
int pos[MAXN],dp[MAXN][MAXK],dis[MAXN][MAXN],one_cover[MAXN][MAXN];
int sum_dis[MAXN][MAXN],sum_dis_r...]]></description><category></category></item><item><title><![CDATA[poj 1313 Booklet Printing 模拟水题]]></title><link>https://blog.youkuaiyun.com/sepNINE/article/details/77842693</link><guid>https://blog.youkuaiyun.com/sepNINE/article/details/77842693</guid><author>sepNINE</author><pubDate>Mon, 04 Sep 2017 22:04:11 +0800</pubDate><description><![CDATA[//poj 1314
//sep9
#include 
using namespace std;
const int MAXN=128;
struct Page{
	int front1,front2;
	int back1,back2;
}pages[MAXN];
int n;
void print(int x)
{
	if(x>n) printf(" Blank");
	else printf]]></description><category></category></item><item><title><![CDATA[poj 1769 Minimizing maximizer 单点更新线段树]]></title><link>https://blog.youkuaiyun.com/sepNINE/article/details/77725491</link><guid>https://blog.youkuaiyun.com/sepNINE/article/details/77725491</guid><author>sepNINE</author><pubDate>Wed, 30 Aug 2017 21:15:25 +0800</pubDate><description><![CDATA[//poj 1769
//sep9
#include 
using namespace std;
const int MAXN=100012;
const int MAXX=9999999;
int n,m;
int minv[MAXN*4];

void build(int l,int r,int k)  
{  
    minv[k]=MAXX;
	if(l==r) 
        ret]]></description><category></category></item><item><title><![CDATA[poj 2286 The Rotation Game 迭代加深搜索]]></title><link>https://blog.youkuaiyun.com/sepNINE/article/details/77540077</link><guid>https://blog.youkuaiyun.com/sepNINE/article/details/77540077</guid><author>sepNINE</author><pubDate>Thu, 24 Aug 2017 19:18:44 +0800</pubDate><description><![CDATA[//poj 2286
//sep9
#include 
using namespace std;
int move[8][9]={{0,2,6,11,15,20,22},
  			     {1,3,8,12,17,21,23},
	  		     {10,9,8,7,6,5,4},
		         {19,18,17,16,15,14,13},
		         {23,21,17]]></description><category></category></item><item><title><![CDATA[poj 1180 Batch Scheduling dp斜率优化]]></title><link>https://blog.youkuaiyun.com/sepNINE/article/details/77511334</link><guid>https://blog.youkuaiyun.com/sepNINE/article/details/77511334</guid><author>sepNINE</author><pubDate>Wed, 23 Aug 2017 20:18:19 +0800</pubDate><description><![CDATA[题意：
       设dp[i]=min dp[j]+(S+sumT[i]-sumT[j])*F[i]  1
分析：
       dp[i]=min (S+sumT[i])*sumF[i]+dp[j]-sumT[j]*F[i],由于F[i]随i减小单增，sumT[j]随i减小单增，按照i从N到1倒推dp[i]满足单调队列优化的条件dp[i]=S(i)+min{fj(i)|i
代码：
]]></description><category></category></item><item><title><![CDATA[poj 3155 Hard Life 最大密度子图]]></title><link>https://blog.youkuaiyun.com/sepNINE/article/details/76652921</link><guid>https://blog.youkuaiyun.com/sepNINE/article/details/76652921</guid><author>sepNINE</author><pubDate>Fri, 04 Aug 2017 06:01:04 +0800</pubDate><description><![CDATA[//poj 3155
//sep9
#include   
#include   
  
using namespace std;  
const int MAXN=512;  
const int MAXM=20000;
const double MAX=1e7;  
typedef double cap_type;
  
struct Edge  
{  
    int v,nxt;
	ca]]></description><category></category></item><item><title><![CDATA[poj 1022 Packing Unit 4D Cubes 搜索]]></title><link>https://blog.youkuaiyun.com/sepNINE/article/details/76595535</link><guid>https://blog.youkuaiyun.com/sepNINE/article/details/76595535</guid><author>sepNINE</author><pubDate>Wed, 02 Aug 2017 19:36:10 +0800</pubDate><description><![CDATA[//poj 1022
//sep9
#include 
using namespace std;
const int MAXN=128;
const int MAX_INDEX=1024;
int g[MAXN][MAXN][10];
int vis[MAXN],map[MAX_INDEX],minx[4],maxx[4],x[4];

int cases,n,cnt;

void dfs(int]]></description><category></category></item><item><title><![CDATA[poj 1033 Defragment 模拟+递归]]></title><link>https://blog.youkuaiyun.com/sepNINE/article/details/76473549</link><guid>https://blog.youkuaiyun.com/sepNINE/article/details/76473549</guid><author>sepNINE</author><pubDate>Mon, 31 Jul 2017 22:36:24 +0800</pubDate><description><![CDATA[//poj 1033
//sep9
#include 
using namespace std;
const int MAXN=10024;
int a[MAXN],vis[MAXN],N,K;
int zero_pos,flag;


void dfs(int i)
{
	if(a[i]==i||a[i]==0) return;
	if(vis[a[i]]==1){
		printf("%d %]]></description><category></category></item><item><title><![CDATA[poj 2440 DNA 递推在模下存在循环节]]></title><link>https://blog.youkuaiyun.com/sepNINE/article/details/76284286</link><guid>https://blog.youkuaiyun.com/sepNINE/article/details/76284286</guid><author>sepNINE</author><pubDate>Fri, 28 Jul 2017 23:19:50 +0800</pubDate><description><![CDATA[题意和分析：
       题意都是废话，用动态规划列个方程化下简，最后也是这题有意思的地方是求a(n)=a(n-1)+a(n-3)+a(n-3) 在模2005下的值。
       你可能会说，这个简单啊，弄个数组，搞个for循环就行啊，没错，但这是O(n)。能快点么？
       嗯，那用矩阵相乘表示递推，在乘法矩阵结合律的保证下幂运算加速足够快了吧？嗯，是快不少，但这是O(logn)]]></description><category></category></item><item><title><![CDATA[poj 2138 Travel Games 搜索+自动机水题]]></title><link>https://blog.youkuaiyun.com/sepNINE/article/details/76223324</link><guid>https://blog.youkuaiyun.com/sepNINE/article/details/76223324</guid><author>sepNINE</author><pubDate>Fri, 28 Jul 2017 00:29:49 +0800</pubDate><description><![CDATA[//poj 2138
//sep9
#include 
using namespace std;
const int MAXN=1024;
const int MAXL=80;
int n,ecnt;
struct edge{
	char s[MAXL+4];
	bool exist;
	int nxt;
}first,e[MAXN+4];
int head[MAXL+4];

bool judg]]></description><category></category></item><item><title><![CDATA[poj 1145 Tree Summing 栈+模拟]]></title><link>https://blog.youkuaiyun.com/sepNINE/article/details/76181199</link><guid>https://blog.youkuaiyun.com/sepNINE/article/details/76181199</guid><author>sepNINE</author><pubDate>Thu, 27 Jul 2017 12:57:51 +0800</pubDate><description><![CDATA[题意：
给一个数a和一棵带权树T，判断T根到叶子的若干路径的权和中是否有和a相等的。
分析：
       栈用来表达式求值有两种办法，一是将表达式转为后序再求值，二是利用单调符号栈一次扫描。单调符号栈一次扫描法求值时维护单调符号栈（栈中总是优先级低的符号在下,‘（’在栈外优先级最高，栈中优先级最低，‘）’在栈外优先级最低，不可能出现在栈中）。先搞清楚表达式求值的单调符号栈一次扫描法这题就容]]></description><category></category></item><item><title><![CDATA[poj 1966 Cable TV Network 无向图最小割]]></title><link>https://blog.youkuaiyun.com/sepNINE/article/details/75512963</link><guid>https://blog.youkuaiyun.com/sepNINE/article/details/75512963</guid><author>sepNINE</author><pubDate>Thu, 20 Jul 2017 13:16:22 +0800</pubDate><description><![CDATA[//poj 1966
//sep9
#include 
#include 

using namespace std;
const int MAXN=512;
const int MAXM=20000;

struct Edge
{
	int v,nxt,f;
}e[MAXM],e_copy[MAXM];

queue que;
int src,sink;
int g[MAXN],dist[MAX]]></description><category></category></item><item><title><![CDATA[poj 1040 Transportation 深搜剪枝]]></title><link>https://blog.youkuaiyun.com/sepNINE/article/details/75452469</link><guid>https://blog.youkuaiyun.com/sepNINE/article/details/75452469</guid><author>sepNINE</author><pubDate>Wed, 19 Jul 2017 22:35:15 +0800</pubDate><description><![CDATA[//poj 1040
//sep9
#include 
using namespace std;
int n,m,order_num,ans;

struct Order{
	int s,t,num,val;	
}orders[32];
int passengers[16],most_earn[32];

void dfs(int cur,int sum_value)
{
	if(cur>=ord]]></description><category></category></item><item><title><![CDATA[poj 1815 Friendship 求字典序最小的最小割]]></title><link>https://blog.youkuaiyun.com/sepNINE/article/details/75332570</link><guid>https://blog.youkuaiyun.com/sepNINE/article/details/75332570</guid><author>sepNINE</author><pubDate>Wed, 19 Jul 2017 06:07:53 +0800</pubDate><description><![CDATA[题意：
拆点后是求无向图字典序最小的最小割。
分析：
       设有边e(u,v),则下面三点等价：
       1：e可以作为割边(最小割集不唯一)。
       2：去掉e后最小割值变小。
       3：残量网络中不存在u到v的增广路。
       所以从编号小的边开始，判断该边可不可能是割边，如果可能，把这条边去了，退流。如果不可能，保持原状，处理下一条边。
代]]></description><category></category></item><item><title><![CDATA[poj 1176 Party Lamps 模拟]]></title><link>https://blog.youkuaiyun.com/sepNINE/article/details/75142459</link><guid>https://blog.youkuaiyun.com/sepNINE/article/details/75142459</guid><author>sepNINE</author><pubDate>Sat, 15 Jul 2017 02:30:10 +0800</pubDate><description><![CDATA[//poj 1176
//sep9
#include 
#include 
#include 
using namespace std;
const int MAXN=128;
int N,C,limit[MAXN],tmp[MAXN];
string pass_string[20];

string get_string()
{
	string res;
	for(int i=0;i<N;++i]]></description><category></category></item><item><title><![CDATA[poj 1120 A New Growth Industry 模拟]]></title><link>https://blog.youkuaiyun.com/sepNINE/article/details/75093973</link><guid>https://blog.youkuaiyun.com/sepNINE/article/details/75093973</guid><author>sepNINE</author><pubDate>Thu, 13 Jul 2017 22:37:37 +0800</pubDate><description><![CDATA[//poj 1120
//sep9
#include 
using namespace std;
const int SIZE=20;
int D[SIZE+4],mat[SIZE+4][SIZE+4],sum[SIZE+4][SIZE+4];
int dx[4]={0,0,-1,1};
int dy[4]={-1,1,0,0};
char ch[4]={'.','!','X','#'};
int]]></description><category></category></item><item><title><![CDATA[poj 1079 Ratio 模拟]]></title><link>https://blog.youkuaiyun.com/sepNINE/article/details/74906374</link><guid>https://blog.youkuaiyun.com/sepNINE/article/details/74906374</guid><author>sepNINE</author><pubDate>Sun, 09 Jul 2017 22:14:07 +0800</pubDate><description><![CDATA[模拟题，只是涉及分数精度的一个技巧：c++中如何取整？如果a是一个浮点数，int b=(int)a; b是a的整数部分么？？
        答案是不一定，因为在一般实际的算法中，不是int b=(int)a这么简单 a可能经过了很多运算，有精度丢失。比如a的真值是8 计算机不小心搞成了7.999999或8.000001这样直接取整就会有问题(假设我们的计算机误差范围不超过1e-6，计算机不能保]]></description><category></category></item><item><title><![CDATA[poj 3044 City Skyline 单调栈]]></title><link>https://blog.youkuaiyun.com/sepNINE/article/details/58605446</link><guid>https://blog.youkuaiyun.com/sepNINE/article/details/58605446</guid><author>sepNINE</author><pubDate>Tue, 28 Feb 2017 17:03:15 +0800</pubDate><description><![CDATA[//poj 3044
//sep9
#include 
#include 
using namespace std;
const int MAXN=80000;
int x,y[MAXN];

int main()
{
	int n,w;
	while(scanf("%d%d",&n,&w)==2){
		for(int i=0;i<n;++i){
			scanf("%d%d",&x,&y[i]]]></description><category></category></item><item><title><![CDATA[poj 1053 Set Me 枚举水题]]></title><link>https://blog.youkuaiyun.com/sepNINE/article/details/54629191</link><guid>https://blog.youkuaiyun.com/sepNINE/article/details/54629191</guid><author>sepNINE</author><pubDate>Fri, 20 Jan 2017 09:59:35 +0800</pubDate><description><![CDATA[//poj 1053
//sep9
#include 
using namespace std;
struct Card{
	char characters[8];	
}tableau[16];

bool judge(int p,int i,int j,int k)
{
	if(tableau[i].characters[p]==tableau[j].characters[p])	
		if(t]]></description><category></category></item></channel></rss>