﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-yzhw@ujs code my life~-最新评论</title><link>http://www.cppblog.com/yzhw/CommentsRSS.aspx</link><description>江苏大学</description><language>zh-cn</language><pubDate>Fri, 09 Nov 2012 03:04:00 GMT</pubDate><lastBuildDate>Fri, 09 Nov 2012 03:04:00 GMT</lastBuildDate><generator>cnblogs</generator><item><title>re: pku 3998 Land Division DP斜率优化</title><link>http://www.cppblog.com/yzhw/archive/2012/05/23/158598.html#175839</link><dc:creator>lzqxh</dc:creator><author>lzqxh</author><pubDate>Tue, 22 May 2012 17:55:00 GMT</pubDate><guid>http://www.cppblog.com/yzhw/archive/2012/05/23/158598.html#175839</guid><description><![CDATA[这个题卡常数。。你还用分数类。=。=<br>把每个点的权值设为m，则每部分平均权值为n。之后转为整数操作<br>之后，我离散化点Tle了。证明大数据比较多，离散化优势在于处理小数据，但是大数据复杂度退化成O(nlogn)。。<br>之后改成原坐标直接作为dp状态。。400+msAc了<br>最后：好像是贪心+单调队列。。没有发现用到斜率的地方啊<img src ="http://www.cppblog.com/yzhw/aggbug/175839.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/yzhw/" target="_blank">lzqxh</a> 2012-05-23 01:55 <a href="http://www.cppblog.com/yzhw/archive/2012/05/23/158598.html#175839#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: The 36th ACM/ICPC Asia Regional Dalian Online Contest  大连2011ICPC网络赛 个人题解</title><link>http://www.cppblog.com/yzhw/archive/2011/09/13/155042.html#155702</link><dc:creator>demo</dc:creator><author>demo</author><pubDate>Tue, 13 Sep 2011 14:05:00 GMT</pubDate><guid>http://www.cppblog.com/yzhw/archive/2011/09/13/155042.html#155702</guid><description><![CDATA[ans2=min(ans2,1);这句直接ans2=1;就行了吧？<img src ="http://www.cppblog.com/yzhw/aggbug/155702.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/yzhw/" target="_blank">demo</a> 2011-09-13 22:05 <a href="http://www.cppblog.com/yzhw/archive/2011/09/13/155042.html#155702#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: The 36th ACM/ICPC Asia Regional Shanghai Site —— Warmup 个人题解</title><link>http://www.cppblog.com/yzhw/archive/2011/09/08/155307.html#155343</link><dc:creator>yzhw</dc:creator><author>yzhw</author><pubDate>Thu, 08 Sep 2011 04:10:00 GMT</pubDate><guid>http://www.cppblog.com/yzhw/archive/2011/09/08/155307.html#155343</guid><description><![CDATA[@tjt<br>有一题当时算法对的，用C++没过。后来用java过掉了<br>呵呵~我不是说比赛时候做出6题<img src ="http://www.cppblog.com/yzhw/aggbug/155343.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/yzhw/" target="_blank">yzhw</a> 2011-09-08 12:10 <a href="http://www.cppblog.com/yzhw/archive/2011/09/08/155307.html#155343#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: The 36th ACM/ICPC Asia Regional Shanghai Site —— Warmup 个人题解</title><link>http://www.cppblog.com/yzhw/archive/2011/09/08/155307.html#155327</link><dc:creator>tjt</dc:creator><author>tjt</author><pubDate>Thu, 08 Sep 2011 01:35:00 GMT</pubDate><guid>http://www.cppblog.com/yzhw/archive/2011/09/08/155307.html#155327</guid><description><![CDATA[怎么突然又成了6题了呢~~<img src ="http://www.cppblog.com/yzhw/aggbug/155327.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/yzhw/" target="_blank">tjt</a> 2011-09-08 09:35 <a href="http://www.cppblog.com/yzhw/archive/2011/09/08/155307.html#155327#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: The 36th ACM/ICPC Asia Regional Dalian Online Contest  大连2011ICPC网络赛 个人题解</title><link>http://www.cppblog.com/yzhw/archive/2011/09/06/155042.html#155190</link><dc:creator>yzhw</dc:creator><author>yzhw</author><pubDate>Tue, 06 Sep 2011 01:21:00 GMT</pubDate><guid>http://www.cppblog.com/yzhw/archive/2011/09/06/155042.html#155190</guid><description><![CDATA[@waterman<br>这里的次小值是节点P中儿子子树最小值的次小值，换句话说，假设把所有儿子子树的最小值放在一个列表中，然后排个序的话，该子树节点的次小值是排位第二的元素（当然实现的时候不用这样）。就是说，最小值和次小值不会处于同一颗子树上<img src ="http://www.cppblog.com/yzhw/aggbug/155190.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/yzhw/" target="_blank">yzhw</a> 2011-09-06 09:21 <a href="http://www.cppblog.com/yzhw/archive/2011/09/06/155042.html#155190#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: The 36th ACM/ICPC Asia Regional Dalian Online Contest  大连2011ICPC网络赛 个人题解</title><link>http://www.cppblog.com/yzhw/archive/2011/09/05/155042.html#155164</link><dc:creator>waterman</dc:creator><author>waterman</author><pubDate>Mon, 05 Sep 2011 14:43:00 GMT</pubDate><guid>http://www.cppblog.com/yzhw/archive/2011/09/05/155042.html#155164</guid><description><![CDATA[问问博主，对于1008，如果x在y为根的子树上，且最小值在x所在的这棵子树上，就取次小的值，那么如果次小的值也在x所在的这棵子树上，是否要继续考虑第三小的值呢？<img src ="http://www.cppblog.com/yzhw/aggbug/155164.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/yzhw/" target="_blank">waterman</a> 2011-09-05 22:43 <a href="http://www.cppblog.com/yzhw/archive/2011/09/05/155042.html#155164#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: The 36th ACM/ICPC Asia Regional Dalian Online Contest  大连2011ICPC网络赛 个人题解[未登录]</title><link>http://www.cppblog.com/yzhw/archive/2011/09/05/155042.html#155107</link><dc:creator>yzhw</dc:creator><author>yzhw</author><pubDate>Mon, 05 Sep 2011 00:44:00 GMT</pubDate><guid>http://www.cppblog.com/yzhw/archive/2011/09/05/155042.html#155107</guid><description><![CDATA[@PWK<br>谢谢你~<img src ="http://www.cppblog.com/yzhw/aggbug/155107.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/yzhw/" target="_blank">yzhw</a> 2011-09-05 08:44 <a href="http://www.cppblog.com/yzhw/archive/2011/09/05/155042.html#155107#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: The 36th ACM/ICPC Asia Regional Dalian Online Contest  大连2011ICPC网络赛 个人题解</title><link>http://www.cppblog.com/yzhw/archive/2011/09/04/155042.html#155063</link><dc:creator>PWK</dc:creator><author>PWK</author><pubDate>Sun, 04 Sep 2011 11:13:00 GMT</pubDate><guid>http://www.cppblog.com/yzhw/archive/2011/09/04/155042.html#155063</guid><description><![CDATA[代码粘错啦，比赛的时候代码写的太挫啦，发现命名了2个DFS，后面那个改小写啦，粘的中每改。dfs函数中的dfs函数改成小写。<br>void dfs(int x)<br>{<br>done[x]=1;<br>int min1=100001,min2=100001,i,v=-1;<br>for(i=0;i&lt;newmap[x].size();i++)<br>{<br>if(!done[newmap[x][i].v])<br>{<br>if(dp[newmap[x][i].v]&lt;=min1) {min2=min1;min1=dp[newmap[x][i].v];v=newmap[x][i].v;}<br>else if(dp[newmap[x][i].v]&lt;=min2) min2=dp[newmap[x][i].v];<br>}<br>}<br>q=MinN(min2,q);<br>if(v!=-1) dfs(v);<br>}<img src ="http://www.cppblog.com/yzhw/aggbug/155063.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/yzhw/" target="_blank">PWK</a> 2011-09-04 19:13 <a href="http://www.cppblog.com/yzhw/archive/2011/09/04/155042.html#155063#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: The 36th ACM/ICPC Asia Regional Dalian Online Contest  大连2011ICPC网络赛 个人题解</title><link>http://www.cppblog.com/yzhw/archive/2011/09/04/155042.html#155062</link><dc:creator>PWK</dc:creator><author>PWK</author><pubDate>Sun, 04 Sep 2011 11:08:00 GMT</pubDate><guid>http://www.cppblog.com/yzhw/archive/2011/09/04/155042.html#155062</guid><description><![CDATA[补上1005题目思路，在这题的思路是对点进行割边的缩点从构图，如果2点2连通，那么他们连通的边是不能破坏的。能破坏的只有割边。由void DFS(int x,int farther)  ，void Set_Color(int x)完成。完成后成为一棵树。之后就是博弈问题啦，做完敌人，他们要找到一条链，使得能尽量多的删除最小的边。不能删除的最小边权值则是这题的解。删除最小的边的方法是以最小边的两个点为根，分别构建树，树形DP，求节点下面的哪条路有最小边，找到不走的边的最小权值。输出。<br>#include &lt;iostream&gt;  <br>#include &lt;vector&gt;  <br>using namespace std;  <br>#define maxn 10005 <br>int MinN(int x,int y) {return x&lt;y?x:y;}  <br>struct node{int v,w;}; <br>vector&lt;node&gt; map[maxn],newmap[maxn];  <br>int DFn[maxn];                 //深搜时节点的访问顺序  <br>int low[maxn];                 //存放当前接点不经过其父亲节点能够访问DFn值最小的节点  <br>int color[maxn]; <br>int dp[maxn]; <br>int index;  <br>int n,m,q;<br>int minu,minv,minw;<br>bool done[maxn];<br><br><br>void DFS(int x,int farther)  <br>{  <br>	int i;<br>    DFn[x]=low[x]=index++;//赋初值  <br>    for(i=0;i&lt;map[x].size();i++)  <br>    {  <br>        if(!DFn[map[x][i].v])  <br>        {  <br>            DFS(map[x][i].v,x);  <br>            low[x]=MinN(low[x],low[map[x][i].v]);//检查子节点能返回的最早的祖先  <br>        }  <br>        else if(farther!=map[x][i].v)  <br>        low[x]=MinN(low[x],DFn[map[x][i].v]);//检查从自身出发的后向边（无向图中没有横叉边）      <br>    }  <br>}  <br>void Set_Color(int x)//染色，同一双连通分量内的节点用一种颜色  <br>{  <br>	int i;<br>	node tmp;<br>    for(i=0;i&lt;map[x].size();i++)  <br>    {  <br>        if(!color[map[x][i].v])  <br>        {  <br>            if(low[map[x][i].v]&gt;DFn[x])                //(node,map[node][i])是割边  <br>            {<br>				color[map[x][i].v]=index++;<br>				tmp.v=color[map[x][i].v];tmp.w=map[x][i].w;<br>	            newmap[color[x]].push_back(tmp);<br>				tmp.v=color[x];<br>				newmap[color[map[x][i].v]].push_back(tmp);<br>				if(map[x][i].w&lt;minw)<br>				{<br>					minw=map[x][i].w;<br>					minu=color[x];<br>					minv=color[map[x][i].v];<br>				}<br>			}<br>            else color[map[x][i].v]=color[x];          //非割边，即说明两个节点处在同以双连通分量中  <br>            Set_Color(map[x][i].v);  <br>        }  <br>    }  <br>}  <br><br><br>int DFSDP(int x,int dist)<br>{<br>	done[x]=1;<br>	dp[x]=dist;<br>	int i,a;<br>	for(i=0;i&lt;newmap[x].size();i++)<br>	{<br>		if(!done[newmap[x][i].v])<br>		{<br>			a=DFSDP(newmap[x][i].v,newmap[x][i].w);<br>		    dp[x]=MinN(dp[x],a);<br>		}<br>	}<br>	return dp[x];<br>}<br><br>void dfs(int x)<br>{<br>	done[x]=1;<br>	int min1=100001,min2=100001,i,v=-1;<br>	for(i=0;i&lt;newmap[x].size();i++)<br>	{<br>		if(!done[newmap[x][i].v])<br>		{<br>			if(dp[newmap[x][i].v]&lt;=min1)   {min2=min1;min1=dp[newmap[x][i].v];v=newmap[x][i].v;}<br>			else if(dp[newmap[x][i].v]&lt;=min2)  min2=dp[newmap[x][i].v];<br>		}<br>	}<br>	q=MinN(min2,q);<br>	if(v!=-1) DFS(v);<br>}<br><br>int main()  <br>{ <br>    while(scanf(&quot;%d%d&quot;,&amp;n,&amp;m)!=EOF)<br>	{<br>		int a,b,w,i;<br>		node tmp;<br>		for(i=0;i&lt;maxn;i++)<br>		{<br>			map[i].clear();<br>			newmap[i].clear();<br>		}<br>		for(i=0;i&lt;m;i++)  <br>		{  <br>			scanf(&quot;%d%d%d&quot;,&amp;a,&amp;b,&amp;w);  <br>			tmp.v=b-1;tmp.w=w;<br>			map[a-1].push_back(tmp);<br>			tmp.v=a-1;<br>			map[b-1].push_back(tmp);  <br>		}  <br>		index=1;  <br>		memset(DFn,0,sizeof(DFn));  <br>		DFS(0,-1);  <br>		memset(color,0,sizeof(color));  <br>		color[0]=1;  <br>		index=2;  <br>		minw=100001;<br>		Set_Color(0);  <br>		memset(dp,-1,sizeof(dp));<br>		memset(done,0,sizeof(done));<br>		done[minu]=done[minv]=1;<br>		DFSDP(minu,minw);<br>		DFSDP(minv,minw);<br>		q=100001;<br>		memset(done,0,sizeof(done));<br>		done[minu]=done[minv]=1;<br>		dfs(minu);<br>		dfs(minv);<br>		if(q!=100001)  printf(&quot;%d\n&quot;,q);<br>		else printf(&quot;-1\n&quot;);<br>	}  <br>    return 0;  <br>}  <img src ="http://www.cppblog.com/yzhw/aggbug/155062.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/yzhw/" target="_blank">PWK</a> 2011-09-04 19:08 <a href="http://www.cppblog.com/yzhw/archive/2011/09/04/155042.html#155062#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: pku 1180 Batch Scheduling 经典斜率优化</title><link>http://www.cppblog.com/yzhw/archive/2011/04/04/137929.html#143399</link><dc:creator>ningbohezhijun</dc:creator><author>ningbohezhijun</author><pubDate>Mon, 04 Apr 2011 06:27:00 GMT</pubDate><guid>http://www.cppblog.com/yzhw/archive/2011/04/04/137929.html#143399</guid><description><![CDATA[博主，此题感觉很难，自认为勉强看懂吧，但是为什么说这题很经典呢？有什么推广价值吗？<img src ="http://www.cppblog.com/yzhw/aggbug/143399.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/yzhw/" target="_blank">ningbohezhijun</a> 2011-04-04 14:27 <a href="http://www.cppblog.com/yzhw/archive/2011/04/04/137929.html#143399#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>