<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[anshuo0835的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/anshuo0835</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; anshuo0835]]></copyright><item><title><![CDATA[洛谷 P1063 能量项链]]></title><link>https://blog.youkuaiyun.com/anshuo0835/article/details/101814632</link><guid>https://blog.youkuaiyun.com/anshuo0835/article/details/101814632</guid><author>anshuo0835</author><pubDate>Wed, 25 Sep 2019 20:39:00 +0800</pubDate><description><![CDATA[题目传送门
解题思路：
一道很模板的环形dp,要注意状态转移时串的头和尾到底是哪个.
AC代码:

 1 #include&lt;cstdio&gt;
 2 #include&lt;iostream&gt;
 3 
 4 using namespace std;
 5 
 6 int n,a[202],f[202][202],ans;
 7 
 8 int mai...]]></description><category></category></item><item><title><![CDATA[洛谷 P4342 [IOI1998]Polygon]]></title><link>https://blog.youkuaiyun.com/anshuo0835/article/details/101814629</link><guid>https://blog.youkuaiyun.com/anshuo0835/article/details/101814629</guid><author>anshuo0835</author><pubDate>Wed, 25 Sep 2019 20:35:00 +0800</pubDate><description><![CDATA[题目传送门
解题思路:
一道环形dp,只不过有个地方要注意,因为有乘法,两个负数相乘是正数,所以最小的数是负数,乘起来可能比最大值大,所以要记录最小值(这道题是紫题的原因).
AC代码:

 1 #include&lt;cstdio&gt;
 2 #include&lt;iostream&gt;
 3 #include&lt;cstring&gt; 
 4 
 5 us...]]></description><category></category></item><item><title><![CDATA[洛谷 P2722 总分 Score Inflation && 完全背包模板]]></title><link>https://blog.youkuaiyun.com/anshuo0835/article/details/101814630</link><guid>https://blog.youkuaiyun.com/anshuo0835/article/details/101814630</guid><author>anshuo0835</author><pubDate>Thu, 19 Sep 2019 22:02:00 +0800</pubDate><description><![CDATA[题目传送门
解题思路:
补一个完全背包的模板,跟01背包十分相似,唯一不同在于重量j的枚举顺序.
AC代码:

 1 #include&lt;cstdio&gt;
 2 #include&lt;iostream&gt;
 3 
 4 using namespace std;
 5 
 6 int m,n,v[10004],w[10004],f[10004];
 7 ...]]></description><category></category></item><item><title><![CDATA[洛谷 P1077 摆花]]></title><link>https://blog.youkuaiyun.com/anshuo0835/article/details/101814627</link><guid>https://blog.youkuaiyun.com/anshuo0835/article/details/101814627</guid><author>anshuo0835</author><pubDate>Mon, 16 Sep 2019 20:26:00 +0800</pubDate><description><![CDATA[题目传送门
解题思路:
用f[i][j]表示摆到第i种花,一共摆了j盆的方案数.
AC代码:

 1 #include&lt;cstdio&gt;
 2 #include&lt;iostream&gt;
 3 
 4 using namespace std;
 5 
 6 int n,m,o;
 7 int f[101][101];
 8 int main()
...]]></description><category></category></item><item><title><![CDATA[洛谷 P1731 [NOI1999]生日蛋糕 && POJ 1190 生日蛋糕]]></title><link>https://blog.youkuaiyun.com/anshuo0835/article/details/101814628</link><guid>https://blog.youkuaiyun.com/anshuo0835/article/details/101814628</guid><author>anshuo0835</author><pubDate>Mon, 09 Sep 2019 22:58:00 +0800</pubDate><description><![CDATA[题目传送门(洛谷) OR 题目传送门(POJ)
解题思路:
一道搜索题,暴力思路比较容易想出来,但是这道题不剪枝肯定会TLE.所以这道题难点在于如何剪枝.
1.如果当前状态答案已经比我们以前某个状态求出来的答案还要大,那么我们就没有必要搜下去,直接return.
2.如果有某个状态,在这之后假设所有答案都是最优,还比我们当前已经求出来的最小值大,那么哇哦们也没有必要搜下去,re...]]></description><category></category></item><item><title><![CDATA[POJ 1011 Sticks]]></title><link>https://blog.youkuaiyun.com/anshuo0835/article/details/101814625</link><guid>https://blog.youkuaiyun.com/anshuo0835/article/details/101814625</guid><author>anshuo0835</author><pubDate>Sun, 08 Sep 2019 17:36:00 +0800</pubDate><description><![CDATA[题目传送门
//原址有中文翻译
解题思路:
求出总长度sum和小棒最长的长度max，则原棒可能的长度必在max~sum之间，然后从小到大枚举max~sum之间能被sum整除的长度len，用dfs求出所有的小棒能否拼凑成这个长度，如果可以，第一个len就是答案。

下面就是关键的了，就是这道题dfs的实现和剪枝的设计：
1.以一个小棒为开头，用dfs看看能否把这个...]]></description><category></category></item><item><title><![CDATA[POJ 1144 Network(割点)]]></title><link>https://blog.youkuaiyun.com/anshuo0835/article/details/101814626</link><guid>https://blog.youkuaiyun.com/anshuo0835/article/details/101814626</guid><author>anshuo0835</author><pubDate>Sun, 08 Sep 2019 17:29:00 +0800</pubDate><description><![CDATA[题目传送门
题目中文翻译:
Description
电话线公司（TLC）正在建立一个新的电话电缆网络。 他们正在连接几个地方编号从1到N的整数。 没有两个地方有相同的号码。 这些线路是双向的，并且总是将两个地方连接在一起，并且在每个地方线路在电话交换机中结束。 每个地方都有一个电话交换台。 从每个地方都有可能通过其他地方的线路到达，但它不一定是直接连接，它可以经过几次交换。 电源不...]]></description><category></category></item><item><title><![CDATA[求无向图中的割边(桥)]]></title><link>https://blog.youkuaiyun.com/anshuo0835/article/details/101814623</link><guid>https://blog.youkuaiyun.com/anshuo0835/article/details/101814623</guid><author>anshuo0835</author><pubDate>Sun, 08 Sep 2019 11:37:00 +0800</pubDate><description><![CDATA[1 inline void tarjan(int x,int edge) {
 2     int v;
 3     dfn[x] = low[x] = ++tot;
 4     for(int i = head[x];i != -1; i = e[i].next) {
 5         v = e[i].to;
 6         if(!dfn[v]) {...]]></description><category></category></item><item><title><![CDATA[POJ 2553 The Bottom of a Graph]]></title><link>https://blog.youkuaiyun.com/anshuo0835/article/details/101814624</link><guid>https://blog.youkuaiyun.com/anshuo0835/article/details/101814624</guid><author>anshuo0835</author><pubDate>Sat, 31 Aug 2019 19:59:00 +0800</pubDate><description><![CDATA[题目传送门
题目中文大意:
对于一些点,任意一个点都互相可达,则这些点称为"汇".求每一个"汇"的所有点.
解题思路:
tarjan求强连通分量,缩点,对于所有没有出度的强连通分量的点,就是答案.
AC代码:

 1 #include&lt;cstdio&gt;
 2 #include&lt;iostream&gt;
 3 #include&lt;stack&gt;
...]]></description><category></category></item><item><title><![CDATA[Tarjan求强连通分量模板]]></title><link>https://blog.youkuaiyun.com/anshuo0835/article/details/101814474</link><guid>https://blog.youkuaiyun.com/anshuo0835/article/details/101814474</guid><author>anshuo0835</author><pubDate>Sat, 31 Aug 2019 18:50:00 +0800</pubDate><description><![CDATA[1 inline void tarjan(int x) {
 2     int v;
 3     dfn[x] = low[x] = ++sum;
 4     a.push(x);
 5     _in[x] = 1;
 6     for(int i = head[x];i != -1; i = e[i].next) {
 7         v = e[i]....]]></description><category></category></item><item><title><![CDATA[POJ 2186 Popular Cows]]></title><link>https://blog.youkuaiyun.com/anshuo0835/article/details/101814621</link><guid>https://blog.youkuaiyun.com/anshuo0835/article/details/101814621</guid><author>anshuo0835</author><pubDate>Sat, 31 Aug 2019 18:48:00 +0800</pubDate><description><![CDATA[题目传送门
题目中文翻译:
Description
每头牛的梦想就是成为牛群中最受欢迎的牛。在一群N（1 &lt;= N &lt;= 10,000）母牛中，你可以得到M（1 &lt;= M &lt;= 50,000）有序的形式对（A，B），告诉你母牛A认为母牛 B很受欢迎。 由于流行是传递性的，如果A认为B很受欢迎，B认为C受欢迎，那么A也会认为C是受欢迎的，即使这不是输入中有序...]]></description><category></category></item><item><title><![CDATA[洛谷 P2871 [USACO07DEC]手链Charm Bracelet && 01背包模板]]></title><link>https://blog.youkuaiyun.com/anshuo0835/article/details/101814622</link><guid>https://blog.youkuaiyun.com/anshuo0835/article/details/101814622</guid><author>anshuo0835</author><pubDate>Thu, 15 Aug 2019 19:46:00 +0800</pubDate><description><![CDATA[题目传送门
解题思路:
一维解01背包,突然发现博客里没有01背包的板子,补上
AC代码:

 1 #include&lt;cstdio&gt;
 2 #include&lt;iostream&gt;
 3 
 4 using namespace std;
 5 
 6 int n,m,c,w,f[15000];
 7 
 8 int main()
 9 {
...]]></description><category></category></item><item><title><![CDATA[洛谷 P1032 字串变换(map)]]></title><link>https://blog.youkuaiyun.com/anshuo0835/article/details/101814619</link><guid>https://blog.youkuaiyun.com/anshuo0835/article/details/101814619</guid><author>anshuo0835</author><pubDate>Thu, 15 Aug 2019 19:44:00 +0800</pubDate><description><![CDATA[题目传送门
解题思路:
搜索题,因为要求最少次数,用bfs.
AC代码:


 1 #include&lt;cstdio&gt;
 2 #include&lt;iostream&gt;
 3 #include&lt;cstring&gt; 
 4 #include&lt;string&gt;
 5 #include&lt;queue&gt;
 6 #include&...]]></description><category></category></item><item><title><![CDATA[洛谷 P1025 数的划分]]></title><link>https://blog.youkuaiyun.com/anshuo0835/article/details/101814620</link><guid>https://blog.youkuaiyun.com/anshuo0835/article/details/101814620</guid><author>anshuo0835</author><pubDate>Wed, 14 Aug 2019 21:34:00 +0800</pubDate><description><![CDATA[题目传送门
解题思路:
设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的方案，即用3个数组成4.
子问题②b(i,j)=F(i-1,j-1)，即...]]></description><category></category></item><item><title><![CDATA[洛谷 P1784 数独]]></title><link>https://blog.youkuaiyun.com/anshuo0835/article/details/101814617</link><guid>https://blog.youkuaiyun.com/anshuo0835/article/details/101814617</guid><author>anshuo0835</author><pubDate>Wed, 14 Aug 2019 21:31:00 +0800</pubDate><description><![CDATA[题目传送门
解题思路:
跟八皇后很相似,区别在于本题不用记录斜线,但是要记录每个宫格,在每个位置上都要填数.
AC代码：

 1 #include&lt;cstdio&gt;
 2 #include&lt;iostream&gt;
 3 #include&lt;cstdlib&gt;
 4 
 5 using namespace std;
 6 
 7 int a[...]]></description><category></category></item><item><title><![CDATA[洛谷 P2360 地下城主]]></title><link>https://blog.youkuaiyun.com/anshuo0835/article/details/101814618</link><guid>https://blog.youkuaiyun.com/anshuo0835/article/details/101814618</guid><author>anshuo0835</author><pubDate>Tue, 13 Aug 2019 21:41:00 +0800</pubDate><description><![CDATA[题目传送门
解题思路:
一道三维的迷宫,bfs即可(因为要求最短步数).
读入的时候总是出错,经过twh的耐心教导后,知道如果直接用字符数组读,每行会多读一个回车,直接读字符串就可以避免这个问题.
AC代码:

 1 #include&lt;cstdio&gt;
 2 #include&lt;iostream&gt;
 3 #include&lt;queue&gt;
 ...]]></description><category></category></item><item><title><![CDATA[洛谷 P1379 八数码难题(map && 双向bfs)]]></title><link>https://blog.youkuaiyun.com/anshuo0835/article/details/101814615</link><guid>https://blog.youkuaiyun.com/anshuo0835/article/details/101814615</guid><author>anshuo0835</author><pubDate>Tue, 13 Aug 2019 21:37:00 +0800</pubDate><description><![CDATA[题目传送门
解题思路:
一道bfs,本题最难的一点就是如何储存已经被访问过的状态,如果直接开一个bool数组,空间肯定会炸,所以我们要用另一个数据结构存,STL大法好,用map来存,直接AC.
AC代码:


 1 #include&lt;cstdio&gt;
 2 #include&lt;iostream&gt;
 3 #include&lt;map&gt;
 4 #...]]></description><category></category></item><item><title><![CDATA[洛谷 P1155 双栈排序]]></title><link>https://blog.youkuaiyun.com/anshuo0835/article/details/101814616</link><guid>https://blog.youkuaiyun.com/anshuo0835/article/details/101814616</guid><author>anshuo0835</author><pubDate>Tue, 13 Aug 2019 21:32:00 +0800</pubDate><description><![CDATA[题目传送门
解题思路:
首先考虑只有一个栈的时候如何解决这个问题。
就是对于一对位置(i, j)是否能共存三个位置i&lt;j&lt;k存在pk​&lt;pi​&lt;pj​是不可行的，因为pk​需要在pi​与pj​之前出栈，但pi​又需要在pj​之前出栈，那么这就会产生矛盾。
我们就将i和j连一条边,如果找到一对i和j不能连边,构不成二分图,输出0;否则...]]></description><category></category></item><item><title><![CDATA[最长上升子序列(LIS)]]></title><link>https://blog.youkuaiyun.com/anshuo0835/article/details/101814613</link><guid>https://blog.youkuaiyun.com/anshuo0835/article/details/101814613</guid><author>anshuo0835</author><pubDate>Sun, 11 Aug 2019 17:17:00 +0800</pubDate><description><![CDATA[1 int dp[MAX_N], a[MAX_N], n;
 2 int ans = 0;  // 保存最大值
 3 
 4 for (int i = 1; i &lt;= n; ++i) {
 5     dp[i] = 1;
 6     for (int j = 1; j &lt; i; ++j) {
 7         if (a[j] &lt; ...]]></description><category></category></item><item><title><![CDATA[洛谷 P1970 花匠]]></title><link>https://blog.youkuaiyun.com/anshuo0835/article/details/101814614</link><guid>https://blog.youkuaiyun.com/anshuo0835/article/details/101814614</guid><author>anshuo0835</author><pubDate>Sun, 11 Aug 2019 17:09:00 +0800</pubDate><description><![CDATA[题目传送门
解题思路:
如果选一个点,那么这个点前一个点一定比它小,它后一个点一定比它大.
AC代码:

 1 #include&lt;iostream&gt;
 2 #include&lt;cstdio&gt;
 3 
 4 using namespace std;
 5 
 6 int n,a,ans = 1,now,k;
 7 
 8 int main() ...]]></description><category></category></item></channel></rss>