<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[QzNarsh的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/QzNarsh</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; QzNarsh]]></copyright><item><title><![CDATA[UVA 10123 	No Tipping]]></title><link>https://blog.youkuaiyun.com/QzNarsh/article/details/52189937</link><guid>https://blog.youkuaiyun.com/QzNarsh/article/details/52189937</guid><author>QzNarsh</author><pubDate>Fri, 12 Aug 2016 11:10:04 +0800</pubDate><description><![CDATA[UVA-10123题意：给出双支点天平和上面的若干个物块的重量、位置。求一个取出方案，使得取的过程保持平衡。 
解题思路：可以反过来想，拿起来要平衡，和放下去平衡是一样的。首先可以确定，两个支点中间的物品只会增加稳定性，不会破坏平衡，所以两个支点之间的物品直接就放上去。其他的物品分为左边和右边，分别根据几何力距从小到大排序（先放小的，可以想一下，如果小的下去都破坏平衡了，肯定要放另外一边的。）然后就]]></description><category></category></item><item><title><![CDATA[UVA 208 	Firetruck]]></title><link>https://blog.youkuaiyun.com/QzNarsh/article/details/52189064</link><guid>https://blog.youkuaiyun.com/QzNarsh/article/details/52189064</guid><author>QzNarsh</author><pubDate>Fri, 12 Aug 2016 10:03:40 +0800</pubDate><description><![CDATA[UVA-208题意：给出一张图，求从1到n的路径方案。 
解题思路：这题有点坑。首先n不一定是最大节点。可能n只有4，但是中间点下标是9，8，7。然后样例的输出格式坑人，实际上是1 2 3 4这样两个之间有一个空格，不是它样例看起来的5场宽。输出顺序是字典序从小到大，这么我们要序号从小到大开始DFS。这里又有一个问题，题目中会给出一些路径，很深很复杂，但是到不了n，在这里卡爆时间。处理方法是判断这个]]></description><category></category></item><item><title><![CDATA[UVA 193 	Graph Coloring]]></title><link>https://blog.youkuaiyun.com/QzNarsh/article/details/52188907</link><guid>https://blog.youkuaiyun.com/QzNarsh/article/details/52188907</guid><author>QzNarsh</author><pubDate>Fri, 12 Aug 2016 09:48:57 +0800</pubDate><description><![CDATA[UVA-193题意：给出n个点m条边，每条边不允许两端都染色。求最多可以染色多少个点，这些点是哪些。 
解题思路：从第一个点开始枚举染或不染，染的条件是它相连的点都未染色。暴力DFS。/*************************************************************************
    > File Name: UVA-193.cpp
    >]]></description><category></category></item><item><title><![CDATA[UVA 140 	Bandwidth]]></title><link>https://blog.youkuaiyun.com/QzNarsh/article/details/52188764</link><guid>https://blog.youkuaiyun.com/QzNarsh/article/details/52188764</guid><author>QzNarsh</author><pubDate>Fri, 12 Aug 2016 09:34:53 +0800</pubDate><description><![CDATA[UVA-140题意：A:BC表示A和BC有连接。给出若干个类似提示，求给出的所有字母的一个序列，这个序列使得有连接2个字母之间的差值的最大值最小，若存在多个，取字典序最小的。 
解题思路：要对所有字母判断是否是新的，新的要存起来。其实就是求全排列，然后求出距离差的最大值，看看是否比ans小。小就替换来。然后next_permutation是真的好用。/************************]]></description><category></category></item><item><title><![CDATA[UVA	10001	Garden of Eden]]></title><link>https://blog.youkuaiyun.com/QzNarsh/article/details/52049780</link><guid>https://blog.youkuaiyun.com/QzNarsh/article/details/52049780</guid><author>QzNarsh</author><pubDate>Wed, 27 Jul 2016 21:45:20 +0800</pubDate><description><![CDATA[UVA-10001题意： 
题目我也看了好久才看懂，参看http://www.cnblogs.com/staginner/archive/2011/09/07/2169351.html的解释，想了好久。 
大概意思是题目给的那个表格的前3列是固定的，但是它们得到的new state是根据Automaton Identfier的01串在第i位的值来决定的。 
如题目中Automaton Identfi]]></description><category></category></item><item><title><![CDATA[UVA	167	The Sultan's Successors]]></title><link>https://blog.youkuaiyun.com/QzNarsh/article/details/52049635</link><guid>https://blog.youkuaiyun.com/QzNarsh/article/details/52049635</guid><author>QzNarsh</author><pubDate>Wed, 27 Jul 2016 21:28:08 +0800</pubDate><description><![CDATA[UVA-167题意：八皇后问题升级版，在有值的8×8矩阵上放置八皇后，求最大值。 
解题思路：八皇后问题，多一个记录总和sum，取最大值。/*************************************************************************
    > File Name: UVA-167.cpp
    > Author: Narsh
    >]]></description><category></category></item><item><title><![CDATA[UVA	165	Stamps]]></title><link>https://blog.youkuaiyun.com/QzNarsh/article/details/52049467</link><guid>https://blog.youkuaiyun.com/QzNarsh/article/details/52049467</guid><author>QzNarsh</author><pubDate>Wed, 27 Jul 2016 21:09:34 +0800</pubDate><description><![CDATA[UVA-165题意：有h个贴邮票的位置和k种面值。求怎么安排邮票的面值，使得可以贴出的连续的面值最大。 
解题思路：第一个tempval[1]肯定是1。不然你1都弄不出来。之后的每个数的枚举范围 tempval[i-1]+1 到 tempval[i-1]*h+1。tempval[i-1]+1很明显，如果你比前面的小，就每意义了。顶为什么是tempval[i-1]*h+1，因为你可以用前i-1个拼出t]]></description><category></category></item><item><title><![CDATA[UVA	10012	How Big Is It?]]></title><link>https://blog.youkuaiyun.com/QzNarsh/article/details/52049404</link><guid>https://blog.youkuaiyun.com/QzNarsh/article/details/52049404</guid><author>QzNarsh</author><pubDate>Wed, 27 Jul 2016 21:01:19 +0800</pubDate><description><![CDATA[UVA-10012题意：给出一堆圆的半径，求要用多长的矩形能把框住。 
解题思路：枚举球的排列顺序（next_permutation大法好），然后判断球的圆心的位置应该在哪里。temp[x]表示圆心的位置,temp是和之前所有的圆求圆心位置中取最大值的那个（可能两个很大的圆中间有一堆小的，只和前一个计算圆心位置不够）。 
怎么通过一直圆求新圆的圆心位置：r1,r1    d=r1+r2, t=abs]]></description><category></category></item><item><title><![CDATA[UVA	331	Mapping the Swaps]]></title><link>https://blog.youkuaiyun.com/QzNarsh/article/details/52049335</link><guid>https://blog.youkuaiyun.com/QzNarsh/article/details/52049335</guid><author>QzNarsh</author><pubDate>Wed, 27 Jul 2016 20:50:39 +0800</pubDate><description><![CDATA[UVA-331题意：给出的数据只能相邻2个交换，求经最少次交换使得序列为递增序列的交换方法有多少个。 
解题思路：只能相邻两个交换要换到递增顺序的次数是整个串中逆序对的个数 cnt。DFS暴力模拟交换，交换cnt次后，如果序列是递增的，ans++.。最后输出ans。/*******************************************************************]]></description><category></category></item><item><title><![CDATA[UVA	10344	23 out of 5]]></title><link>https://blog.youkuaiyun.com/QzNarsh/article/details/52049301</link><guid>https://blog.youkuaiyun.com/QzNarsh/article/details/52049301</guid><author>QzNarsh</author><pubDate>Wed, 27 Jul 2016 20:46:27 +0800</pubDate><description><![CDATA[UVA-10344题意：求(((((a1 o a2) o a3)o a4 )o a5)，其中o的选择范围{+，- ，*}，a1-a5由给定的5个数中任意顺序。看能不能使得结果为23。 
解题思路：先枚举a1-a5的顺序（STL 里的 next_permutation 简直强大），然后再枚举每个o选+-*中的哪一个。/******************************************]]></description><category></category></item><item><title><![CDATA[UVA	301	Transportation]]></title><link>https://blog.youkuaiyun.com/QzNarsh/article/details/52049261</link><guid>https://blog.youkuaiyun.com/QzNarsh/article/details/52049261</guid><author>QzNarsh</author><pubDate>Wed, 27 Jul 2016 20:42:00 +0800</pubDate><description><![CDATA[UVA-301题意：给出车量承载人数，城市数，订单数，以及每个订单的起始城市，终点城市和人数。城市的到达顺序0->1->2->……>n，每个人每坐到下一个城市需要1个花费，求车子最多能获得多少钱。 
解题思路：枚举每个订单接不接，起始站的num[star]+= order_number[i]; 终点站 num[end]-=order_number[i]。然后从0开始一路累加num[i]，到城市i，前]]></description><category></category></item><item><title><![CDATA[UVA	539	The Settlers of Catan]]></title><link>https://blog.youkuaiyun.com/QzNarsh/article/details/52049203</link><guid>https://blog.youkuaiyun.com/QzNarsh/article/details/52049203</guid><author>QzNarsh</author><pubDate>Wed, 27 Jul 2016 20:34:29 +0800</pubDate><description><![CDATA[UVA-539题意：每条边只能走一次，求最多能走过多少条边。 
解题思路：枚举一个顶点进入dfs，dfs中找还能走的边进行尝试，不知道两个城市之间是否存在多条边，但是记录总数和边走过的次数来控制就不用担心了。记录走的最大边数。最后输出。/*************************************************************************
    > Fi]]></description><category></category></item><item><title><![CDATA[UVA	639	Don't Get Rooked]]></title><link>https://blog.youkuaiyun.com/QzNarsh/article/details/52049167</link><guid>https://blog.youkuaiyun.com/QzNarsh/article/details/52049167</guid><author>QzNarsh</author><pubDate>Wed, 27 Jul 2016 20:29:12 +0800</pubDate><description><![CDATA[UVA-639题意：给出一个地图，x为障碍物。可以放置一些喷火器(？)，可以攻击和它同行同列的东西，攻击会被x障碍物阻隔。求在这个地图上可以放多少个喷火器。 
解题思路：因为地图很小，暴力枚举每个点能不能放，放下去之后对它所在的行列的可攻击范围内的计数的pd[i][j]++。只有pd[i][j]==0 的点才可以放。/*****************************************]]></description><category></category></item><item><title><![CDATA[UVA	216	Getting in Line]]></title><link>https://blog.youkuaiyun.com/QzNarsh/article/details/52049122</link><guid>https://blog.youkuaiyun.com/QzNarsh/article/details/52049122</guid><author>QzNarsh</author><pubDate>Wed, 27 Jul 2016 20:23:52 +0800</pubDate><description><![CDATA[UVA-216题意：给出若干个点，只能用一条线连接，求最小费用（？反正是距离+16.0）。 
解题思路：深搜暴力枚举第i个连接的点，计算下总和。注意下输出。漏了一个 . 我WA了2次。/*************************************************************************
    > File Name: UVA-216.cpp
    >]]></description><category></category></item><item><title><![CDATA[UVA	110	Meta-Loopless Sorts]]></title><link>https://blog.youkuaiyun.com/QzNarsh/article/details/52039870</link><guid>https://blog.youkuaiyun.com/QzNarsh/article/details/52039870</guid><author>QzNarsh</author><pubDate>Tue, 26 Jul 2016 21:35:13 +0800</pubDate><description><![CDATA[UVA-110题意：给出pascal的写法，然后问你一个n个数的排序，只用if，要怎么比较出来。然后要用pascal的写法写输出出来。 
解题思路：学过pascal，好久没有用了，本来是一个美好的回忆，却被这题无情摧毁了。 
言归正传。很明显每次只是对两个数进行比较，很容易想到DFS逐一控制输出。难度还好，就是第一次遇到这种题有点懵。注意每深入一次DFS前面的空格数会+2。/************]]></description><category></category></item><item><title><![CDATA[UVA	729	The Hamming Distance Problem]]></title><link>https://blog.youkuaiyun.com/QzNarsh/article/details/52039774</link><guid>https://blog.youkuaiyun.com/QzNarsh/article/details/52039774</guid><author>QzNarsh</author><pubDate>Tue, 26 Jul 2016 21:24:13 +0800</pubDate><description><![CDATA[UVA-729题意：balabala了一堆，其实就是求n位01串中有 h 个1的所有序列。 
解题思路：STL中有一个求字符串字典序下一个字符的函数。next_permutation(c,c+n)。第一个是起始位置，后一个是结束位置。类似sort。然后只要把第一个(n-h个)0+ (h个)1的串弄出来。就好了。。/*******************************************]]></description><category></category></item><item><title><![CDATA[UVA	10098	Generating Fast]]></title><link>https://blog.youkuaiyun.com/QzNarsh/article/details/52039716</link><guid>https://blog.youkuaiyun.com/QzNarsh/article/details/52039716</guid><author>QzNarsh</author><pubDate>Tue, 26 Jul 2016 21:16:41 +0800</pubDate><description><![CDATA[UVA-10098题意：给出一串字母，求它的全排列。 
解题思路：一开始傻傻的直接排序完DFS求全排列WA了。看了题解发现是存在重复字母的，这样去dfs就会出现aabc 这种字符串的全排列中aabc会出现2次。所以要判断重复。要怎么判断呢，DFS做出来的全排列是按字典序来的，那么会重复的两个一定是相邻的，所只要和最后一次生成的答案比较就好了。/****************************]]></description><category></category></item><item><title><![CDATA[UVA	146	ID Codes]]></title><link>https://blog.youkuaiyun.com/QzNarsh/article/details/52039648</link><guid>https://blog.youkuaiyun.com/QzNarsh/article/details/52039648</guid><author>QzNarsh</author><pubDate>Tue, 26 Jul 2016 21:08:52 +0800</pubDate><description><![CDATA[UVA-146题意：给出一个字符串，求它按字典序的下一个串。 
解题思路：从后往前找到第一个不满足s[i] >= s[i+1]的位置，用i+1到end中比s[i]大的中最小的那个替换s[i]，剩下的i+1到end的字母从小到大排序。/*************************************************************************
    > File]]></description><category></category></item><item><title><![CDATA[UVA	131	The Psychic Poker Player]]></title><link>https://blog.youkuaiyun.com/QzNarsh/article/details/52039598</link><guid>https://blog.youkuaiyun.com/QzNarsh/article/details/52039598</guid><author>QzNarsh</author><pubDate>Tue, 26 Jul 2016 21:02:25 +0800</pubDate><description><![CDATA[UVA-131题意：给出 5 张手牌和 5 张备用牌。可以任意丢弃手上的 k 张牌，并从备用牌上方抽 k 张补充。求手上能达到的最大牌面。 
解题思路： 
首先要搞清楚牌面的大小顺序。 
同花顺（AKQJ10，花色相同就行）>四条（四张相同的牌，炸弹 = =） > 福尔豪斯 （aaabb的牌型) >   同花（5张花色相同） > 顺子 （连续，无视花色。A可以当1也可以当14）> 三条 （aaabc]]></description><category></category></item><item><title><![CDATA[CodeForces 560A 	Currency System in Geraldion]]></title><link>https://blog.youkuaiyun.com/QzNarsh/article/details/52004999</link><guid>https://blog.youkuaiyun.com/QzNarsh/article/details/52004999</guid><author>QzNarsh</author><pubDate>Sat, 23 Jul 2016 16:17:02 +0800</pubDate><description><![CDATA[CodeForces 560A题意：给出n个数字，求它组成的货币系统会不会存在无法用给出n个面值凑出来，存在输出第一个无法凑出的数，不存在输出-1。 
解题思路：。。。只要有1，都能凑出来，没有1，肯定从1就缺了。/*************************************************************************
    > File Name: 07]]></description><category></category></item></channel></rss>