??xml version="1.0" encoding="utf-8" standalone="yes"?>久久发布国产伦子伦精品,久久久精品免费国产四虎,婷婷综合久久狠狠色99hhttp://www.shnenglu.com/menjitianya/category/20878.htmlzh-cnThu, 07 Aug 2014 10:55:08 GMTThu, 07 Aug 2014 10:55:08 GMT60Southeastern Europe 2004 解题报告http://www.shnenglu.com/menjitianya/archive/2014/08/06/207926.html英雄哪里出来英雄哪里出来Wed, 06 Aug 2014 13:23:00 GMThttp://www.shnenglu.com/menjitianya/archive/2014/08/06/207926.htmlhttp://www.shnenglu.com/menjitianya/comments/207926.htmlhttp://www.shnenglu.com/menjitianya/archive/2014/08/06/207926.html#Feedback0http://www.shnenglu.com/menjitianya/comments/commentRss/207926.htmlhttp://www.shnenglu.com/menjitianya/services/trackbacks/207926.html
A. Period

       PKU 1961 http://poj.org/problem?id=1961

       题意Q给定一个长度ؓN(N <= 106)的字W串SQ求它的所有前~中能够表C成AK的前~Qƈ且要求求出每个前~对应?/span>K?/span>

       题解Q?/span>KMP

       利用KMP求出该串?/span>Next数组Q然后枚举每个前~Q根?/span>Next数组的定义,对于某个前缀S[1...i]Q有S[1...Next[i]] = S[i-Next[i]+1...i]Q假讑։~S[1...i]能够表示?/span>AK的Ş式,?/span>A = S[Next[i]+1...i]Q所以必L?/span>i能够?/span>i - Next[i] 整除Q满x件后K = i/( i - Next[i])?/span>

 

B. Corporative Network

       PKU 1962 http://poj.org/problem?id=1962

       题意Q给?/span>N(N <= 20000)个点?/span>M(M <= 200000)ơ操作,每次操作有两U类型:

       I a b   ?/span>a的父l点设ؓbQƈ且合q距Mؓ |a-b| mod 1000

       E a    询问a到根l点的合q距R?/span>

题解Qƈ查集

利用路径压羃的思想Q用dist[p]表示p?/span>p的父l点的合q距,每次查询的时候篏?/span>p到根l点的合q距,q且?/span>p?/span>p所在树的根l点R的\径上的所有点的父l点都设?/span>RQ然后更新各自的合ƈ距离?/span>

合ƈ操作O(1)Q查询操作d杂度O(N)?/span>

 

C. Cave Exploration

PKU 1963 http://poj.org/problem?id=1963

题意Q给?/span>N(N <= 1000)条水qx者垂直的走廊Q再l定走廊上Q意一个坐标点作ؓL以及方向Q按照以下策略走Q能够左转就左{Q不能则W直赎ͼ不能W直走就双{Q都不能掉头。这栯最后绕一圈又会回到v点,问哪些走廊是没有l过的,只要有一个点走过ql过?br />      题解Q模?/span> + 哈希?/span>

水q线D和竖直U段分开存,分两U情况讨论:

      1、水q线D?/span>

对于L一Ҏq线D,枚D所有的竖直U段Q计出交点和水q线D늚端点Q保存下来ƈ且按x坐标递增排序Q去掉重复点Q利用双向链表将两个盔R点连接v来,׃x?/span>y坐标范围?/span>-32767~32767Q而交Ҏ不会过N2Q所以可以采用哈希将二维的点映射C位数l中。每个点记录水^走廊的编受?/span>

      2、竖直线D?/span>

同上操作Q不同的是每个点记录竖直走廊的编受?/span>

l过1?/span>2两步操作后,走廊上的关键点已l被L化了Qƈ且所有点都通过四向链表串接hQ然后只需要从L开始模拟行走即可,走到一个关键点Q将关键Ҏ在的两个走廊~号标记掉,最后统计没有标记的走廊~号是{案了?/span>

 

D. City Game

       PKU 1964 http://poj.org/problem?id=1964

       题意Q给定一?/span>M*N(M <= 1000Q?/span>N <= 1000)?/span>01矩阵Q求它的一个子矩阵Q满矩阵元素全?/span>1Qƈ且面U最大?/span>

题解Q枚举行Q对于第i行,以第i行ؓLQ扫描每一?/span>jQ找到第一个不?/span>1的数所在的位置P[j]QoK[j] = P[j] - iQ于是问题{化成了一个一l的问题?/span>

L[i] 表示 K [ L[i]+1 ... i] 中的元素都大于等?/span>K[i]Q但?/span>L[i]K[i]Q?/span>

R[i] 表示 K [i ... R[i]-1] 中的元素都大于等?/span>K[i],但是R[i]K[i]Q?/span>

Max{  (R[i] - L[i] - 1) * K[i],  1 <= i <= N }是以当前枚举行v点的最大矩阵,枚DMơ取最大值就是全局的最大子矩阵了?/span>

 

E. Cube Root

       PKU 1965 http://poj.org/problem?id=1965

       题意Q给定一个不过150个数字的正整敎ͼ求它的三ơ方根,_到小数点?/span>10位?/span>

       题解Q大数模?/span>

输入的?/span>X用字W串存储Q乘?/span>1030Q利用二分求出最大的YQ?/span>Y3 <= X。然后在Y的后十位前插入一个小数点Q输出即可?/span>

 

F. Cable TV Network

       PKU 1966 http://poj.org/problem?id=1966

       题意Q求囄点连通度。给定一?/span>N(N <= 50)个点的图Q求L臛_多少个点能够它变成一个非q通图?/span>

       题解Q搜?/span> + 剪枝 (或?/span> 最大流)

       枚D每个点去掉或不去掉,d250U状态,每次L点后判断当前囄q通性,一旦破坏了q通,L的点数即为答案;如果发现某个点去掉后Q剩下点l成的图变成了一个完全图Q那么不用l搜索了Q因为当前状态下不可能将剩下的图变成非连通图了;如果L的点数超q目前的最优解也直接剪枝?/span>

       好吧...一定是数据׃-_-||Q正解是最大流拆点?/span>

 

G. Alibaba

       PKU 1967 http://poj.org/problem?id=1967

       题意Q给?/span>N(N <= 104)个整数对(Pi, Di)表示?/span>Pi位置有一个宝物,q且需要在Di 旉之前取走(l出序?/span>Pi递增的顺?/span>)。v始可以Q意选择一个位|,往左或者往叛_宝物Q问是否能够保证每个物品都在Di旉之前取走(旉和距dpMؓ1:1)Q如果可以,l出取完所有宝物的最时间?/span>

       题解Q搜?/span> + 剪枝

       首先可以惛_的是Qv始位|一定是N个宝物所在位|中的其中一个,所以首先可以枚举每个宝物的起始点,比如当前位置?/span>posQ那么在W?/span>0U内Q访问过的区间ؓ[pos, pos]Q可以选择往左走Q也可以选择往双Q那么是不是只要选择某个方向走完Q然后再反方向走到底如果能够满所有点都在截止旉内完成一定是对的呢?{案是否定的Q来看一l数据,如图1Qv始点只能选择3号位|,q且只能选择往双Q走?/span>4后再折回走到2Q然后再折回走到5Q以此类推,q且只有q一U\径才能满x有宝物都在截x间内取完?/span>


?/span>1

         按照q个思\Q进行状态的划分Q假讑ֽ前已l访问的区间?/span>[L, R]Qƈ且现在的位置处于pos位置(q里pos要么{于LQ要么等?/span>R)Q所以可以用三维来表C状?/span>DP[s][l][r](l?/span>r表示讉Kq的区间的左右端点,如果当前位置?/span>l?/span>s = 0Q如果当前位|在rQ则s=1)Qd状态数?/span>N2Q状态{Uȝ时候由大状态推状态,?/span>DP[s][l][r]一定是?/span>DP[0][l-1][r]?/span>DP[0][l][r+1]?/span>DP[1][l-1][r]?/span>DP[1][l][r+1]q四个状态得出?/span>

       考虑?/span>N比较大,所以把所有状态存储到数组中再利用动态规划进行递推Q如果数据量不多的话Q可以卡q,但是状态存储需要用滚动数组Q否则内存吃不消Q也可以采用搜烦 + 剪枝Q思\是沿用了动态规划的思想Q假讑ֽ前已l访问的区间?/span>[L, R]Q现在的位置处于pos位置(q里pos要么{于LQ要么等?/span>R)Qƈ且已l用了T的时_无论当前?/span>pos是在左区间端?/span>L上还是在叛_间端?/span>R上,他都可以选择走到L-1(L > 1)Q或?/span>R+1(R < N)Q于是就可以递归求解了,递归出口?/span>L=1Q?/span>R=N的时候?/span>


?/span>2

       如图Q已l访问的宝物为红色标记的点,灰色标记的ؓ未曾讉Kq的Qƈ且现在的位置在已l访问区间的左端?/span>L上,已经使用?/span>T的时_我们需要判断这个状态是否合法,则需要满以下的几个不等式?/span>

       1、保证右Ҏ讉K的都能在截止旉内访问到Q?/span>

              T + (P[R] - P[L]) +  (P[R+1] - P[R])  < D[R+1]

              T + (P[R] - P[L]) +  (P[R+2] - P[R])  < D[R+2]

              ...

              T + (P[R] - P[L]) +  (P[N] - P[R])  < D[N]

              这些等式化Q可得:

              T - P[L]  <  D[R+1] - P[R+1]

              T - P[L]  <  D[R+2] - P[R+2]

              ...

              T - P[L]  <  D[N] - P[N]

              再进行进一步化Q得Q?/span>

              T - P[L]  <  Min{ D[k] - P[k],  R < k <= N }

       2、保证左Ҏ讉K的都能在截止旉内访问到Q?/span>

              同理Q可以得出:

              T + P[R]  <  Min{ D[k] + P[k],  1 <= k < R }

      

       那么Qo POSTM[i] = Min{ D[k] - P[k],  i < k <= N }

                      PREM[i] = Min{ D[k] + P[k],  1 <= k < i }

       q两个数l可以分别通过一ơ逆序和顺序的U性扫描求出来Q用于搜索的时候判断可行性。例如,?/span>T - P[L] >= POSTM[R] 表示在右Ҏ讉K的宝物中有至一个宝物不能在截止旉前被讉K刎ͼT + P[R] >= PREM [R]表示在左Ҏ讉K的宝物中有至一个宝物不能在截止旉前被讉K刎ͼ直接剪枝?/span>

       q需要一个剪枝,是在当前时?/span>T加上当前状态下预计讉K完所有宝物的最时?/span>已经比之前求出的最时间大Q直接剪枝?/span>

 

H . Booklets

       PKU 1968 http://poj.org/problem?id=1968

       题意Q?/span>N(N <= 3000)本小册子需要分配给S个学校,每个学校得到的是N/S的上整本册子或?/span>N/S的下整本册子Q每本册子有一个页敎ͼq且规定分配册子的时候按照页数递增来分配,先把上整本册子分完再分下整的Q对于每个学校的分书规则Q按照输入的序q行分配。求问第T个学校分到的W一本册子的|?/span>

 

       题解Q需要求出几个量Q?/span>

       上整册子的数?/span>UIP = (N+S-1) / S;

       下整册子的数?/span>LIP = N/S;

       分到上整册子数目的学校个?/span>UIPC = N % S;

       分到下整册子数目的学校个?/span>LIPC = N - N % S;

 

       首先Ҏ有的册子按页数递增来排?/span>(如果|相同按照下标递增排序)Q然后减dT-1个学校的册子LQ容易得出第T个学校分到的册子数目CQ从接下来的C个册子中扑ֈ之前下标最的册子Q它对应的页数就是答案?/span>

 

I. Count on Canton

       PKU 1969 http://poj.org/problem?id=1969

       题意Q给定下图所C的无限分数序列Qƈ且按照蛇形方式编P即第一个ؓ1/1Q第二个?/span>1/2Q第三个?/span>2/1Q第四个?/span>3/1Q以此类推,问第N个分数是什么?/span>

               1/1         1/2         1/3         1/4           1/5 ...
               2/1         2/2         2/3         2/4
               3/1         3/2         3/3
               4/1         4/2
               5/1
    题解Q数学题?/span>
    首先二分求出在第几条斜线上,?/span>(K-1)K/2 < N的最大的KQ然后求ҎK的奇偶性求形在W?/span>K条斜U的行走方向Q第N - (K-1)K/2 个数是{案?/span>
 


]]>
South Central USA 2002 解题报告http://www.shnenglu.com/menjitianya/archive/2014/07/31/207869.html英雄哪里出来英雄哪里出来Thu, 31 Jul 2014 03:31:00 GMThttp://www.shnenglu.com/menjitianya/archive/2014/07/31/207869.htmlhttp://www.shnenglu.com/menjitianya/comments/207869.htmlhttp://www.shnenglu.com/menjitianya/archive/2014/07/31/207869.html#Feedback1http://www.shnenglu.com/menjitianya/comments/commentRss/207869.htmlhttp://www.shnenglu.com/menjitianya/services/trackbacks/207869.html

A . The Hardest Problem Ever

       PKU 1298 http://poj.org/problem?id=1298

         题意Q解码题Q按照如下对应关p解码:

       密文 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 
      
原文 V W X Y Z A B C D E F G H I J K L M N O P Q R S T U 

       题解Q简单题?/span>

 

B. Polar Explorer

PKU 1299 http://poj.org/problem?id=1299

题意Q给定圆的半?/span>XQ求圆周上两个点A?/span>B的距,其中圆心?/span>AOB的角度ؓZ(0 <= Z <= 360)?/span>

题解Q核心是Z如果大于180Q则Z = 360 - ZQ即走劣弧。而且题目求的是来回一ơ,所以计的时候弧长要?/span>2?/span>

 

C. Door Man

PKU 1300 http://poj.org/problem?id=1300

题意Q给定一些边和v?/span>sQ求能否扑ֈ一条从s?/span>0的通\Qƈ且要求访问所有的辏V?/span>

题解Q欧拉回路可行解判定?/span>

首先利用flood fill?/span>s遍历全图Q如?/span>0Ҏ有被讉K到则必定不存在;然后判断度数不ؓ0的点是否有未被访问到的,如果有,说明图不q通,也必定不存在解;最后统计度Cؓ奇数的点的个?/span>PQ以及具体的点:

1)  P = 0Q则必定有解Q?/span>

2)  P > 2Q则无解Q?/span>

3)  P =2, 那么有解的前提是两个奇度数点中一个是sQ另一个是0Q否则无解?/span>

 

D . The Umbrella Problem 2054

PKU 1301 http://poj.org/problem?id=1301

题意Q给定一?/span>10X10的地图,玩家从第一行的某一个点出发Q每一步行~号+1Q列~号增量有三U选择(-1, 0, 1)Q图中标CؓS(laser gun)的点不能赎ͼq且S的点会发出镭光Q第0U朝上发,W?/span>1U朝叻IW?/span>2U朝下,W?/span>3U朝左,循环往复,发射长度一直到地图边缘。问能否走到最后一行标CؓG(grass)的地斏V?/span>

题解Q广搜?/span>

hash[4][R][C]表示状态,每走一步,利用步数 mod 4计算出镭光的方向,然后所有的镭射光可辑֌域全部标记出来,未标记的点ؓ可达点,枚D三个方向q行搜烦?br />

E. Blue Gene, Jr.

       PKU 1302 http://poj.org/problem?id=1302

       题意Q一个长度ؓN(N <= 20)的病毒基因串A[1...N]q行变异Q变异过E从左往叻I分情况讨论:

       1) 如果W?/span>i个字W是 A-ZQ则它将变异成数?/span>n mod 10Q?/span>n表示A[i+1...N]中变异基因的数目Q?/span>

       2) 如果W?/span>i个字W是 1-9Q则它变异成A[i] - 1Qƈ且如果第p (p = i + A[i])个基因存在的话,从第p个基因开始变异;否则从第i+1个基因开始变异;

       题解Q题意理解后是个水题了Q递归求解?/span>

 

F . Byte Me!

       PKU 1303 http://poj.org/problem?id=1303

       题意Q二q制二十一?/span>(二进刉杰克)是由两种牌组成的游戏Q一U称?/span>bytes(一?/span>8比特的序列表C?/span>0-255之间的数)Q一U称?/span>nibbles((一?/span>4比特的序列表C?/span>0-15之间的数)Q游戏玩法如下:

       1) 游戏的目标是获得量接近510分,q且不能过它;

       2) 每个玩家有两张牌Q一张面朝上Q一张面朝下(庄家不知道是什么牌)Q?/span>

       3) 每个玩家有四ơ叫牌机会,可以?/span>bytesQ也可以?/span>nibblesQ但是如果分数超q?/span>510则不能再叫牌Q?/span>

       4) 所有的叫牌都是面朝上的Q?/span>

       5) 如果玩家分数过510Q立卛_Q?/span>

       5) 庄家最后一个叫牌;

       7) q_的情况庄家胜(如果所有h都超q?/span>510分,庄家q是赢的)Q?/span>

      

庄家的规?/span>如下Q?/span>

       1) 当看到自己和其他人面朝上的牌Q判断已l必胜时不要再叫牌了Q?/span>

       2) 如果d于382?/span> 需要叫一?/span>byte牌;

       3) 如果d于{于500?/span> 需要叫一?/span>nibble牌;

 

q有两个隐藏规则Q?/span>

       1) 你是庄家Q?/span>

       2) 每个非庄家的玩家面朝下的牌是11111111Q但是庄家不知道Q,面朝上的牌给定;

       3) 非庄家不会叫?/span>(因ؓ他们比较W?/span>)Q?/span>

      

       l定庄家的牌和其他玩安朝上的牌Q以及牌堆中?/span>bytes牌和nibble牌,求庄家的四次叫牌能否莯Q?/span>

 

       题解Q题目说了一大堆Q最后非庄家的玩安不会叫牌Q?/span>o(╯□╰)o...所以只要根据庄家的规则q行叫牌Q然后判断是否能够胜出即可;

       因ؓ其他人都不叫牌,每个人都有两张牌Q所以其他h的d不可能超q?/span>510分,所以,如果庄家叫牌过510分直接被判ؓ负?/span>

       每次叫牌前先判断所有玩家的朝上的卡片分数加?/span>255和庄家当前得分进行比较,如果有一个玩家分数大于庄家分敎ͼ则庄家按?/span>382?/span>500q两个区间进行叫牌?/span>

       四次叫牌l束Q如果所有玩家分数都于{于庄家分数Q则判断庄家分数是否大于510Q如果是Q输?/span>Bust!Q否则输?/span>Win!Q如果小于某个玩家的分数Q那么输?/span>Lose!?/span>

 

G . World's Worst Bus Schedule

       PKU 1304 http://poj.org/problem?id=1304

       题意Q公交R站有N(N <= 20)辆RQ每辆R的发车时间间隔ؓa1 a2 a3 a4... a1 a2 a3 a4... a1 a2 a3 a4...Q@环发车,问某人在T时刻赶到公交车站Q最需要等待多时间能够乘上公交R?/span>

       题解Q对于每辆公交RQ设它的所有时间间隔之和ؓSQoT' = T mod SQ然后枚举所有的发R间隔Q前i个发车间?/span>a[i]之和减去T'中的最正值就是等q辆公交车需要的旉Q取所有公交R的最时间就是所求?/span>

 



]]>
Ulm local 1998 解题报告http://www.shnenglu.com/menjitianya/archive/2014/07/19/207722.html英雄哪里出来英雄哪里出来Sat, 19 Jul 2014 14:42:00 GMThttp://www.shnenglu.com/menjitianya/archive/2014/07/19/207722.htmlhttp://www.shnenglu.com/menjitianya/comments/207722.htmlhttp://www.shnenglu.com/menjitianya/archive/2014/07/19/207722.html#Feedback0http://www.shnenglu.com/menjitianya/comments/commentRss/207722.htmlhttp://www.shnenglu.com/menjitianya/services/trackbacks/207722.html 

 


AArtificial Intelligence?

PKU 2256 http://poj.org/problem?id=2256

题意Q功率的计算公式为P = UIQ给定一句话Q这句话中一定会包含三个变量中的两个Q求另外一个,q且单位会有三种前缀m(?Qk(?QM(??/span>

题解Q字W串扫描?/span>

getsd字符Ԍq行一ơ遍历,查找是否包含子串P=U=I=, 格式化它后面的数字,需要用double来存Q然后检查单位前~Qm需要将原值除?03Qk需要将原g?03QM需要将原值常?06。然后分三种情况计算未知的那个值即可?/span>

 

B. Balancing Bank Accounts

PKU 2257 http://poj.org/problem?id=2257

题意Q给定N(N <= 20)个hQ以及M(M <= 1000)条关p,每条关系的描qCؓnameA nameB CQ表CnameAq个人给了nameBq个人C块钱Qؓ了让所有h都不亏,需要再l出臛_N-1条关p,使得所有h都收支^衡?/span>

题解Q贪心?/span>

首先所有h分成两堆Qfrom_set表示收入大于支出的h的集合,to_set表示支出大于收入的h的集合,q且记录他们各自?nbsp;|收入-支出|Q然后对于所有的from_set的h?nbsp;|收入-支出| q行递增排序Q枚举每个from_set中的人fQ去to_set中找C个htQ满f剩余的钱于{于t亏损的钱Qƈ且t是to_set中亏损最的人,如果找不到这L人,那么扑ֈ亏损最多的那个人,f的钱ltQ@环往复,直到f的钱l完为止?/span>

当from_set中的所有h钱全部l了to_set中的人后Qto_set中也没有h亏损了,所有h辑ֈ收支q?/span>

 

C. The Settlers of Catan

PKU 2258 http://poj.org/problem?id=2258

题意Q给定一个N(N <= 25)个点QM(M <= 25)条边的图Q求囄最长\Q点允许重复Q边不允讔R复?/span>

题解Q前向星 + dfs?/span>

利用前向星存双向边,以每个点vҎ搜遍历整个图Q访问过的边哈希Q搜索过E更新最长\卛_?/span>

 

D. Team Queue

PKU 2259 http://poj.org/problem?id=2259

题意QTeam Queue是这样一UqueueQ每个元素都有一个Team?/span>

对于queue的push操作Q被push的元素从queue中从头到扫描,如果扫到一个元素和它属于同一个TeamQ那么直接将它插入到q个元素后面Q如果没有扫刎ͼ直接插到对列?/span>

对于queue的pop操作Q等同于普通queue的pop操作?/span>

队伍数N于{于1000?/span>

题解Q模拟,开1000个队列?/span>

对于插入操作Q每个Team的元素插入到对应的队列中Qƈ且记录当前Team的最早插入时间。O(1)

对于弹出操作Q枚举所有Team的队列首元素Q从中找旉最早的Q然后对那个队列执行弹出操作。O(N)?/span>

 

E. Error Correction

PKU 2260 http://poj.org/problem?id=2260

题意Q给定N*N(N < 100)?1矩阵Q问是否所?nbsp;行和 ?nbsp;列和 都是偶数Q如果是输出OKQ如果不是,是否能够通过改变一个g?nbsp;都是偶数Q?nbsp;都不行输出Corrupt?/span>

题解Q扫描?/span>

扫描所?nbsp;行和 ?nbsp;列和Q如果正好有其中一行R是奇敎ͼq且其中一列C是奇敎ͼ那么改变(R, C)的值就能保证全是偶敎ͼ否则要么是OKQ要么是Corrupt?/span>

 

F. France '98

PKU 2261 http://poj.org/problem?id=2261

题意Q给?6个国家进行淘汰赛Q以及一?6*16的矩阵AQ其中A[i][j]表示i号国家打败j号国家的概率Q问每个国家取得冠军的概率?/span>

题解Q动态规划?/span>

dp[0][i]   表示 1/2册 Wi个h莯的概?/span>

dp[1][i]   表示 1/4册 Wi个h莯的概?/span>

dp[2][i]   表示 1/8册 Wi个h莯的概?/span>

dp[3][i]   表示  d?nbsp;Wi个h莯的概?nbsp;

1) 那么昄dp[0][i] = A[i][i^1]

2) dp[1][i]的概率取决于1/2册时第i个h莯的概率乘上他打|1/4册中同l的那两个h的概率;

3) dp[2][i]的概率取决于1/4册时第i个h莯的概率乘上他打|1/8册中同l的那四个h的概率;

4) dp[3][i]的概率取决于1/8册时第i个h莯的概率乘上他打| d赛中同组的那八个人的概率Q?/span>

直接递推求解Qdp[3][i]是所求?/span>

 

G. Goldbach's Conjecture

PKU 2262 http://poj.org/problem?id=2262

题意Q将一个数分解成两个奇素数的和?/span>

题解Q素数筛选,枚D?/span>

 

H. Heavy Cargo

PKU 2263 http://poj.org/problem?id=2263

题意Q给定一个有向图Q边权W(u, v)表示从u到v的最大蝲重ؓW(u, v)Q在l定s和tQ求s到t 的最大可能蝲重?/span>

题解Q二分答?nbsp;+ 判断q通性?/span>

二分枚D{案TQ然后从L到终点进行连通性判定,如果Ҏ于T的边不可达,二分的最大值就是答案?/span>

 



]]>
Asia Hefei Online 2008 解题报告http://www.shnenglu.com/menjitianya/archive/2014/06/28/207449.html英雄哪里出来英雄哪里出来Sat, 28 Jun 2014 11:48:00 GMThttp://www.shnenglu.com/menjitianya/archive/2014/06/28/207449.htmlhttp://www.shnenglu.com/menjitianya/comments/207449.htmlhttp://www.shnenglu.com/menjitianya/archive/2014/06/28/207449.html#Feedback0http://www.shnenglu.com/menjitianya/comments/commentRss/207449.htmlhttp://www.shnenglu.com/menjitianya/services/trackbacks/207449.html
A. Constellations

PKU 3690 http://poj.org/problem?id=3690

题意Q给?/span>N*M(N<=1000, M <= 1000)?/span>01矩阵SQ再l定T(T <= 100)?/span>P*Q(P <= 50, Q <= 50)?/span>01矩阵Q问P*Q的矩阵中有多个?/span>S的子矩阵?/span>

题解Q位压羃 + KMP

׃P <= 50Q所以我们可以把所?/span>P*Q的矩阵进行二q制位压~,?/span>P*Q的矩늚每一列压~成一?/span>64位整敎ͼq样P*Q的矩阵就变成了一个长度ؓQ的整数序列,用同L方式?/span>N*M的矩阵进行压~,d可以产生(N-P+1)个长度ؓM的整数序列,剩下的就是进行最?/span>(N-P+1)?/span>KMP匚w了?/span>

       KMP相关法可以参阅Q?/span>

http://www.shnenglu.com/menjitianya/archive/2014/06/20/207354.html


?/span>1 ‘*’代表二进制的1, ’0’代表二进制的0

 

B. DNA repair

       PKU 3691 http://poj.org/problem?id=3691

       题意Q给?/span>N(N <= 50)个长度不过20的模式串Q再l定一个长度ؓM(M <= 1000)的目标串SQ求在目标串S上最改变多字W,可以使得它不包含M的模式串Q所有串只有ACGT四种字符Q?/span>

       题解Q?/span>AC自动?/span> + 动态规?/span>

利用模式串徏?/span>trie图,trie囄每个l点(即下文讲到的状?/span>j)l护三个l构Q?/span>

Node{

              Node *next[4];   // 能够到达的四个状?/span> 的结Ҏ?/span>

              int  id;         // 状?/span>IDQ用于到数组下标的映?/span>

              int  val;        // 当前状态是否是一个非法状?/span> Q以某些模式串结)

}

 

?/span>DP[i][j]表示长度?/span>i (i <= 1000)Q状态ؓj(j <= 50*20 + 1)的字W串变成目标?/span>S需要改变的最字W,讑ֈ始状?/span>j = 0Q那?/span>DP[0][0] = 0Q其他均为无I大。从长度i?/span>i+1q行状态{U,每次转移枚D共四个字W?/span>(A?/span>C?/span>G?/span>T)Q如果枚丑ֈ的字W和S对应位置相同则改变?/span>T=1Q否?/span>T=0Q那么有状态{ULE?/span> DP[i][j] = Min{ DP[i-1][ fromstate ] + T, fromstate为所有能够到?/span>j的状?/span> };最?/span>DP[n][j]中的最值就是答案?/span>

 

C. Kindergarten

       PKU 3692 http://poj.org/problem?id=3692

       题意Q给?/span>G(G <= 200)个女孩和B(B <= 200)个男孩,以及M(0 <= M <= G*B)条记?/span>(x, y)表示x号女孩和yL孩互相认识。ƈ且所有的奛_互相认识Q所有的男孩互相认识Q求扑ֈ最大的一个集合得所有h都认识?/span>

题解Q二分图最大匹?/span>

一个点集中所有h都认识表C个点集是个完全图Q该问题是求原囄一个最大团(最大完全子?/span>)Q可以{化ؓ求补囄最大独立集Q而补图恰好是个二分图。二分图的最大独立集 = ȝ?/span> - 二分囄最大匹配。于是问题就转化成了求补囄最大匹配了?/span>

 

D. Maximum repetition substring

PKU 3693 http://poj.org/problem?id=3693

题意Q给定长度ؓN(N <= 105)的字W串SQ求它的一个最多重复子?/span>(注意Q最多重复子串不{于最镉K复子Ԍ?/span>ababab?/span>aaaa应该取后?/span>)?/span>

题解Q后~数组 + RMQ

枚D重复子串的长?/span>LQ如果对于某?/span>iQ有S[i*L ... N]?/span>S[(i+1)*L ... N]的最长公共前~大于{于L(q一步可以利用后~数组求解height数组Q然后通过RMQ查询区间最值来完成)Q那么以i*L为首Q长度ؓL的子串至会重复两次?/span>


?/span>2

如图Q?/span>L=3Q?/span>i=3的情况,S[3...10]?/span>S[6...10]的最长公共前~?/span>3Q即S[3...5]?/span>S[6...8]完全匚wQ所?/span>S[3...5]重复了两ơ。反之,如果最长公共前~于LQ必定不会重复(因ؓ两个子串之间出现了断层)?/span>

推广到更一般的情况Q如?/span>S[i*L ... N]?/span>S[(i+1)*L ... N]的最长公共前~?/span>TQ那么以S[i*L]为首的重复子串的重复ơ数?/span>T / L + 1Q而且我们可以发现如果?/span>S[i*L]为首Q长度ؓL的子串的重复ơ数大于{于2Q那么它一定不会比?/span>S[(i+1)*L]为首的子串的重复ơ数,q个是显然的Q比?/span>L?/span>2的时候,ababab一定比abab多重复一ơ,Zq个性质Q我们定义一?/span>new_flag标记Q表C是否需要计接下来匚w到的?/span>(?/span>ababab?/span>abab的情况,前者计过了,把new_flagfalseQ就不会计算abab的情况了)Q得出完整算法:

1) 枚D重复子串的长?/span>LQ初始化new_flag标记?/span>trueQ?/span>

2) 枚DiQ计?/span>S[i*L ... N]?/span>S[(i+1)*L ... N]的最长公共前~TQ?/span>

a) 如果T < LQ?/span>new_flag标记?/span>trueQ?/span>

b) 如果T >= LQ判?/span>new_flag是不是ؓfalseQ如果ؓfalseQ说明以S[i*L]为首的串?/span>S[(i-1)*L]为首的串的最长公共前~大于{于TQ蟩转到2)Q否则{3)Q?/span>

3) 因ؓS[i*L, (i+1)*L]有重复子Ԍ但是字典序不一定最,所以还需要枚丑֌?/span> [i-L+1, i+L]Q看是否存在字典序更的子串Q比较字典序q一步可以直接用后~数组计算出来?/span>rankD行比较?/span>

       RMQ相关法可以参阅Q?/span>

       http://www.shnenglu.com/menjitianya/archive/2014/06/26/207420.html

 

E. Network

       PKU 3694 http://poj.org/problem?id=3694

题意Q给?/span>N(N <= 105)个点?/span>M(N-1 <= M <= 2*105)条边的无向连通图Q进?/span>Q(Q <= 1000)ơ加边,每次加入一条边要求输出当前图中有多条割边?/span>

       题解Q无向图割边、最q公q?/span>

利用tarjan求出原图的割边,׃q题数据量比较大Q所以用递归可能会爆栈,需要栈模拟实现递归q程Q?/span>tarjan计算的时候用parent[u]保存u的父l点Q每个结点进出栈各一ơ,出栈时表CZ它ؓ根结点的子树讉K完毕Q然后判?/span>(u, parent[u])是否为割辏V每ơ询?/span>u, v加入后会有多割边,其实是?/span>u?/span>v的到它们的最q公q?/span>lca(u, v)的\径上有多割边,׃在进?/span>tarjan计算的时候保存了每个l点的最早访问时?/span>dfn[u]Q那么有q么一个性质Q?/span>dfn[ parent[u] ] < dfn[u]Q这是显然的(父结点的讉K先于子结?/span>)。于是当dfn[u] < dfn[v]Q将parent[v]赋值给vQ反之,?/span>parent[u]赋值给uQ因为是一|Q所以进q反复P代,一定可以出?/span>u == v 的情况,q时候的u是原先u?/span>v的最q公q先,在P代的时候判断\径上是否存在割边Q\径上的割边经q?/span>(u, v)q条边的加入都将成ؓ非割边,用一个变量保存割Ҏ目,输出卛_?/span>


?/span>3

       如图3Q图中实U表C树边,虚线表示原图中的边,但是q行tarjan计算的时?/span>7q个l点?/span>(6, 7)q条?#8220;捯先登”了,于是(4, 7)成ؓ了一条冗余边Q计完后这个图的割边ؓ(1, 2)?/span>(1,3)?/span>(3, 4)?/span>(3, 5)Q分别标?/span>bridge[2]?/span>bridge[3]?/span>bridge[4]?/span>bridge[5]?/span>true?/span>

当插入一条边(7, 5)Q那么沿着7的祖先\径和5的祖先\径最后找到的最q公q先ؓ3(路径?/span>7 -> 6 -> 4 -> 3 ?/span> 5 -> 3)Q?/span>(3, 4)?/span>(3, 5)q两条割边因为加入了(7, 5)q条边而变成了普通边Q将标记bridge[4]?/span>bridge[5]false?/span>

 

F. Rectangles

       PKU 3695 http://poj.org/problem?id=3695

       题意Q给?/span>N(N <= 20)个矩形,以及M(M <= 105)ơ询问,询问R(R <= N)个矩形的q?/span>

       题解Q离散化 + 暴力( ?/span> Ҏ原理 )

       L化:׃矩Ş很少Q所以可以将它们?/span>XY坐标分别L到整点,两个l度分别LQ点的L不会过2NQ对于本ơ询问,利用前一ơ询问的l果q行面积的增减,Ҏ个矩形进行判断,一共有两种情况Q?/span>

1Q这个矩形前一ơ询问出玎ͼ本次询问不出玎ͼ对它的所有离散块q行自减操作Q如果某个离散块计数减ؓ0Q则总面U减去这个离散块的面U;

2Q这个矩形前一ơ询问没出现Q本ơ询问出玎ͼ对它的所有离散块q行自增操作Q如果某个离散块计数累加后ؓ1Q则总面U加上这个离散块的面U;

       Ҏ原理Q对于每个询问,利用dfs枚D每个矩Ş取或不取Q取出来的所有矩形作怺操作Q所?/span>[奇数个矩形交]的面U和所?/span>[偶数个矩形交]的面U和 是{案Q因为是dfs枚DQ所以在枚D到某ơ相交矩形面Uؓ0的时候就不需要再枚D下去了,是一个比较强的剪枝?/span>

       如图4Q红色区域ؓ被覆盖了一ơ的区域Q橙色区域ؓ被覆盖了两次的区域,黄色区域覆盖了三ơ的区域Q那么先所有的三个矩Ş加v来,然后需要减掉重叠的部分Q重叠的减掉后发玎ͼ重叠的部分多减了Q即图中黄色的部分被多减了一ơ,需要加回来。所以容斥原理可以概括ؓQ奇数加Q偶数减?/span>


?/span>4

      

G. The Luckiest number

PKU 3696 http://poj.org/problem?id=3696

题意Q给?/span>L(L <= 2*109)Q求一个最的?/span>TQ满?/span>T仅由数字’8’l成Qƈ?/span>T?/span>L的倍数?/span>

题解Q欧拉定?/span>

首先Q长度ؓN的仅?/span>8l成的数字可以表CZؓ8*(10N-1)/9?/span>

如果它能?/span>L整除Q则可以列出{式(1)Q?/span>

8*(10N-1)/9 = KL     (其中KZQ意正整数)  (1)

等式稍作变形得到等?/span>(2)Q?/span>

(10N-1) = 9KL/8                            (2)

׃存在分母Q所以我们需要先对分数部分进行约分,得到{式(3)Q?/span>

?/span>A = L/GCD(8, L),  B = 8/GCD(8, L)

(10N-1) = 9K*A / B                          (3)

因ؓA?/span>B已经互质Q所以如?/span>B不ؓ1Qؓ了保证等式右边仍为整敎ͼK必须能被B整除Q?/span>KZQ意整敎ͼ所以一定能够找C?/span>K正好?/span>B的倍数Q所以可以在{式两边同时?/span>9AQ得?/span>(10N-1) mod (9A) = 0Q稍作变形,得到{式(4):

                         (4)       

于是需要引入一个定理,x拉定理?/span>

Ƨ拉定理的描qCؓQ若n, a为正整数Q且n, a互质Q则Q?/span>


?/span>5

(ψ(n)表示n的欧拉函敎ͼ卛_于等?/span>nq且?/span>n互素的数的个?/span>)

q样一来,我们发现只要10?/span>9A互质Q?/span>只需要求9A的欧拉函敎ͼ但是求出来的Ƨ拉函数是不是一定?/span>N最呢Qƈ不是Q所以还需要枚举欧拉函数的因子Q如果它的某个因?/span>T?/span>满(4)的等式,那么T肯定不会?/span>ψ(9A)大,所以T一定更优?/span>

q里9A有可能超q?/span>32位整敎ͼ所以计过E中遇到的乘法操作不能直接相?/span>(两个过32位整数的数相乘会过64位整?/span>)Q需要用C分乘法,卛_用二q制加法模拟乘法Q思想很简单,q接给ZD代码吧?/span>

 

 1 #define LL __int64
 2  
 3 //计算 a*b % mod
 4 LL Produc_Mod(LL a, LL b, LL mod) {
 5        LL sum = 0;
 6        while(b) {
 7               if(b & 1) sum = (sum + a) % mod;
 8               a = (a + a) % mod;
 9               b >>= 1;
10        }
11        return sum;
12 }
13  
14  
15 //计算a^b % mod
16 LL Power(LL a, LL b, LL mod) {
17        LL sum = 1;
18        while(b) {
19               if(b & 1) sum = Produc_Mod(sum, a, mod);
20               a = Produc_Mod(a, a, mod);
21               b >>= 1;
22        }
23        return sum;
24 }

 

H. USTC campus network

PKU 3697 http://poj.org/problem?id=3697

题意Q给?/span>N, M(N <= 104, M <= 106)Q求N个点的完全图删掉M条边后,?/span>1q个l点盔R的点的数目?/span>

题解Q?/span>BFS

利用前向星存?/span>(q里边的含义是反的,i?/span>j有边表示i?/span>j不直接连?/span>)。然后从1开始广搜,和1有边的点hash掉,然后枚Dhash数组中没?/span>hash掉的?/span>(q些Ҏ?/span>1q通的)Q如果点没有被访问过Q标记已讉KQ入队;然后不断弹出队列首元素进行相同的处理?/span>

q里可以加入一个小优化Q将所有点分组Q编?/span>0-9的分Zl,10-19的分Zl,20-29的分Zl,然后用一个计数器来记录每个组中的Ҏ否被讉KQ每ơ访问到一个点的时候计数器自增Q当某个l的计数器ؓ10的时候表C个组内所有点都被讉Kq了Q不需要再q行枚D了,q样可以把最坏复杂度控制?/span> O( N*N/10 ) 以下?/span>

 

 



]]>
Southeastern Europe 2007 解题报告http://www.shnenglu.com/menjitianya/archive/2014/06/01/207161.html英雄哪里出来英雄哪里出来Sat, 31 May 2014 16:03:00 GMThttp://www.shnenglu.com/menjitianya/archive/2014/06/01/207161.htmlhttp://www.shnenglu.com/menjitianya/comments/207161.htmlhttp://www.shnenglu.com/menjitianya/archive/2014/06/01/207161.html#Feedback0http://www.shnenglu.com/menjitianya/comments/commentRss/207161.htmlhttp://www.shnenglu.com/menjitianya/services/trackbacks/207161.html

A . John

PKU 3480 http://poj.org/problem?id=3480

题意QN堆石子,两h轮流从其中一堆中取Q意石子,最后一个取完石子的?/span>

题解Q博弈?/span>

1) 当所有石子的SG值异或和不等?Ӟ

a) 个数大于1的堆?0Q必定是奇数?Q所以先手必输;

b) 个数大于1的堆?1Q总能惛_法将局面变成奇C1Q所以先手必胜;

c) 个数大于1的堆?gt;1Q总能取掉某些矛_Q得所有石子的SG值异或和?Qƈ且个数大?的堆数至还剩两堆;

2) 当所有石子的SG值异或和{于0Ӟ

a) 个数大于1的堆?0Q必定是偶数?Q先手必胜;

b) 个数大于1的堆?1Q不存在Q;

c) 个数大于1的堆?gt;1Q无论怎么取,SG值异或和都不可能?。ƈ且无论先手怎么U,后手可以要么q入偶数?的状态,要么保持SG值和?q且非全1的状态(该状态先手必?/span>Q,所以这U情况,先手必|?/span>

׃1) 的c)情况可以到达2的c)情况Q所?的c)情况为先手必胜点?/span>

 

B . Double Queue

PKU 3481 http://poj.org/problem?id=3481

题意Q给定一些数?K,P)和一些询问,K为数据|PZ先Q每ơ询问输出当前优先最高或者最低的数据的K的|询问完删除这个数据?/span>

题解Q^衡树?/span>

可以用SLT的set(内部也是q树的实现)水过厅R?/span>

 

C . JBC

PKU 3482 http://poj.org/problem?id=3482

题意Q进制{换,数字位可以是M的可见ASCII码,求所有可能进制下的串转换成十q制后的和?/span>

题解Q模拟进制{换,模拟大数q算?/span>

 

D . Loan Scheduling

PKU 3483 http://poj.org/problem?id=3483

题意Q给定N(N <= 10000)个Q务,每个d是一个二元组(Pi, Di)Q表C如果在[0, Di]的某个时d完成则可以得到Pi的利润,每个旉Ҏ多只能有L(L <= 100)个Q务,求取一个Q务子集来完成的的最大利润d?/span>

题解Q贪心?/span>

初始化每个时间点的可用Q务数为LQ初始化d利润和S?/span>

所有Q务按Pi从大到小排序Q对于每个Q务,从Di?枚D它的完成旉tQ如果tq个旉点还有可用Q务,累加Pi到SQƈ且将tq个旉点的可用d数减1Q枚丑֮所有Q务后S即ؓ所求?/span>

 

E . Showstopper

PKU 3484 http://poj.org/problem?id=3484

题意Q给定一些三元组(X, Y, Z)Q一个三元组表示满X + K*Z <= Y (K = 0, 1, 2, 3 ... ) 的所有正整数 X + K*Z出现了一ơ。对于多个三元组Q保证所有数中至多只有一个数出现奇数ơ,求这个数以及它出现的ơ数?/span>

题解Q二分答案?/span>

对于出现奇数ơ的那个数TQ那么如果小于T的所有数的和必定是偶敎ͼ大于{于T的所有数的和必定是奇敎ͼ利用q一点可以二分枚举这个TQ然后利用所有小于等于T的数的个数的奇偶性进行二分判定?/span>

对于某个三元l?X, Y, Z)Q小于等于T的个数分几种情况讨论Q?/span>

1) 当T >= YQ个Cؓ (Y-X)/Z + 1;

2) 当T < XQ个Cؓ0;

3) ?nbsp;X <= T < YQ个Cؓ (T-X)/Z + 1;

每次枚DTQ将所有区间的数相加判断奇偶性即可?/span>

 

F . Highway

PKU 3485 http://poj.org/problem?id=3485

题意Q给定一条高速公路的长度L(范围?到L)和N个村庄,要求在高速公路上Z些出口,使得每个村庄到高速公路至有一个出口的距离不大于DQƈ且出口L最?/span>

题解Q贪心?/span>

计算出每个村庄到高速公路距D范围内的左右区间[Li, Ri]Q对q些区间q行排序Q排序规则ؓ如果左端点一致则按照右端炚w增排序Q否则按照左端点递增排序。然后按左端炚w增枚D每个区间Q每个区间对应一个村庄)Q对于尚未有高速公路可辄村庄Q在其右端点建立一个出口(贪心所在,因ؓ是从左往x描,所以在右端点徏出口肯定比左端点建更优)Q然后将它之后的左端点坐标小于这个出口的区间全部hash掉(因ؓ那些村庄可以用这个出口,无须建立新的出口Q,直到所有区间枚丑֮毕,出口C得Z?/span>

 

G . Computers

PKU 3486 http://poj.org/problem?id=3486

题意Q故事背景是每年都要更换电脑或者进行一ơ维修,如果换电脑需要c的花费,如果不换电脑Q那么第yq到Wzq? 1 <= y <= z <= n)的ȝ修费用ؓm[y][z]Q求l过nq的最花贏V?/span>

题解Q动态规划?/span>

DP[i]表示l过iq的d销Q假设从Wjq开始买了一台新的电脑,一直用CWiq_那么前jq的d销为DP[j]Q从Wj+1q到Wiq的l修开销加上购买pcQ即DP[j] + m[j+1][i] + cQDP[i]是q些开销中的最|卟?/span>

DP[i] = min{ DP[j] + m[j+1][i] + c, 0 <= j < i };

 

H . The Stable Marriage Problem

PKU 3487 http://poj.org/problem?id=3487

题意Qn(n < 27)对男奻I每个男h有对所有女人的好感度,每个女h也有Ҏ有男人的好感度,A对B的好感度CؓG(A, B), 求找ZU稳定的婚配关系Q得对于Q意一对夫妇X(M, W)Q不存在 G(XM, YW) > G(XM, XW) q且 G(XW, ZM) > G(XW, XM)Qƈ且要求男士优先考虑Q即h如果能找到好的一定不会更差的Q。通俗的讲Q就是XM更加喜欢别h的老婆QXw更加喜欢别h的老公Q这L婚姻是不E_的,双方都有可能出现外遇?/span>

题解Q稳定婚ȝ典算法?/span>

׃是男士最优,所以需要模拟男士求q方式?/span>

用L[i][j]表示iL子喜Ƣ的Wj个女子的~号Q?/span>

用R[i][j]表示i号女子对jL子的评分Q越大评分越高,且对于确定的i肯定互不相同Q;

法如下Q?/span>

1) 所有的男子以及他们向多个女h求过婚的信息入队Q每ơ弹Z个男子MQ找C下一个要求婚的对象(求婚序按照对女生的好感度顺序进行)?/span>

a) 如果当前求婚对象W没有配偶Q直接配对,记Match[ W ] = M;

b) 如果当前求婚对象有老公Q即Match[ W ]Q那么检查M ?nbsp;Match[ W ]在W的评分,如果M的评分大于W的老公Q则q其改嫁,前夫入队QMatch[ W ] = MQ否则,该男子Ml箋入队Q?/span>

2) 反复q行1)直到所有h都找到的对象?/span>

 

I . Arne Saknussemm

PKU 3488 http://poj.org/problem?id=3488

题意Q简单字W串模拟?/span>

题解Q根据题意做p了?/span>

 

 

 

 



]]>
Greater New York Regional 2009 解题报告http://www.shnenglu.com/menjitianya/archive/2014/05/28/207124.html英雄哪里出来英雄哪里出来Wed, 28 May 2014 00:25:00 GMThttp://www.shnenglu.com/menjitianya/archive/2014/05/28/207124.htmlhttp://www.shnenglu.com/menjitianya/comments/207124.htmlhttp://www.shnenglu.com/menjitianya/archive/2014/05/28/207124.html#Feedback1http://www.shnenglu.com/menjitianya/comments/commentRss/207124.htmlhttp://www.shnenglu.com/menjitianya/services/trackbacks/207124.html

A.Nth Largest Value
       PKU 3781 
http://poj.org/problem?id=3781

水题Q求10个数中第3大的数?/span>

 

B.Equal Sum Partitions
       
PKU 3782 http://poj.org/problem?id=3782

       题意Q给定一?/span>M(M <= 10000)个元素的序列Q将它切割成K块,每块的和相等Q求最大的K?/span>

       题解Q枚举?/span>

       首先Q切?/span>K块,每块和相{,那么q个和必定是M个元素d的一个因子,那么可以枚DW一个块的长度(MU)Q判断当前块的和是否能被所有数的d整除Q如果可以,序判断可行性,看似复杂度是O(M^2)Q但是能否整除这个剪枝可以筛选掉l大部分情况?/span>

 

C.Balls
       
PKU 3783 http://poj.org/problem?id=3783

题意Q给?/span>B (B <= 50) 个一L球,?/span> M (M <= 1000) 层楼上一个一个往下扔Q存在某个楼?/span>KQ得低于它的楼层往下扔球,球不会碎Q在W?/span>K层扔下去会碎。求最坏情况下Q需要扔几次才能定q个K?/span>

题解Q动态规划?/span>

?/span>DP[i][j]表示L层ؓiQ持?/span>j个球Ӟ最坏情况需要的ơ数Q?/span>

那么如果?/span>k ( 1 <= k <= i) 层进行扔球,有两U情况:

1) 如果球不,则还需要进?/span>DP[i-k][j]ơ测试(向更高的楼层q发Q;

2) 如果球碎Q那么还可以q行的次CؓDP[k-1][j-1] Q损׃一个球Q;

׃要考虑最坏情况,所以每ơ测试必d(1) (2)中的大?/span>+1Q每ơ选定一个楼层,使得q个楼层往下扔球的l果的最大值最,也即状态{ULEؓQ?/span>

DP[i][j] = Min( DP[i][j],  Max(DP[i-k][j], DP[k-1][j-1]) + 1 );

Pku上有道和q题xcM的题Q?/span>http://poj.org/problem?id=1243

 

D.Running Median
       
PKU 3784 http://poj.org/problem?id=3784

       题意Q一个长度ؓM(M <= 9999)的序列,每次奇数位的数读入的时候计前面整个序列的中位数?/span>

       题解Q二?/span> + 树状数组?/span>

       ׃数字?/span>int32范围Q所以首先需要将所有数LC标,枚D每一个数字读入,对应位的数字下标插入到树状数组中,每当d奇数个的时候,利用树状数组的成端求和的性质Q如果要扄K大的敎ͼ那么׃分一个答案,然后查询树状数组Q如果求和大于等?/span>KQ表C是一个候选解Q因保证大于{于K的数最,才是W?/span>K大的敎ͼQ反复二分,直到扑ֈ最的?/span>Vsum(V) >= KQ时间复杂度O(2 *M * log(M) )?/span>

 

E.The Next Permutation
      
PKU 3785 http://poj.org/problem?id=3785

题意Q给定一个可重复元素的排?/span>A[i]Q求下一个排列?/span>

题解Q从后往前扫描,对于W?/span>i个元?/span>A[i]Q如果能够找C?/span>jQ?/span>A[j] > A[i]Qƈ且满?/span>A[j]是W?/span>i位之后最的敎ͼ那么?/span>A[i]?/span>A[j]q行交换Q然后将A[i+1]到末元素q行一ơ不降序排序Q最后得到的串就是解?/span>

 

F.Adjacent Bit Counts
      
PKU 3786 http://poj.org/problem?id=3786

题意Q求长度?/span>n的二q制整数中,盔R两个1的对数有k对(可重复用)的整C数?/span>

题解Q动态规划?/span>

令长度ؓnQ相?/span>1的对Cؓk的数的个CؓDP[n][k]Q其中以0l尾的ؓDP[n][k][0]Q以1l尾的ؓDP[n][k][1]Q那?/span> DP[n][k] = DP[n][k][0] + DP[n][k][1]Q?/span>

q且有如下状态{ULE:

1) 长度?/span>n-1的二q制数在末尾加上一?/span>0Q相?/span>1的对C变,所以有Q?/span>

DP[n][k][0] = DP[n-1][k][0] + DP[n-1][k][1];

2) 长度?/span>n-1的二q制数在末尾加上一?/span>1Q相?/span>1的对数取决于Q第n-1位是0q是1Q当W?/span>n-1位是1Q相?/span>1的对?/span>+1Q当W?/span>n-1位是0Q相?/span>1的对C变,所以有Q?/span>

DP[n][k][1] = DP[n-1][k][0] + DP[n-1][k-1][1];

q且初始状态下DP[0][0][0] = 1,  DP[0][0][1] = 0

 

G.Convex Hull of Lattice Points

PKU 3787 http://poj.org/problem?id=3787
     题意Q凸包?/span>

题解Q?/span>Graham扫描法求解即可?/span>

 

 

H.Interior Points of Lattice Polygons

PKU 3788 http://poj.org/problem?id=3788
     题意Q给定一个凸多边形,求它内部所有的水^U段?/span>

题解Q从多边形第一个点?/span>y坐标开始,递减枚D水^U段?/span>y坐标Q分别和多边形的n条边q行求交点;

1) 如果水^U段和多边Ş某条边共U,说明正好C多边形的边缘Q无d下枚举,跛_循环?/span>

2) 如果水^U段和多边Ş于一个交点,那么?/span>y轴再ơ减的时候,必然没有交点Q也无须l箋枚D?/span>

3) 否则Q将左端点坐标取上整x1Q右端点取下?/span>x2Q如?/span>x1 <= x2 它插入到解集中?/span>

 

 



]]>
Mid-Central USA 2009 解题报告 http://www.shnenglu.com/menjitianya/archive/2014/05/25/207098.html英雄哪里出来英雄哪里出来Sun, 25 May 2014 12:33:00 GMThttp://www.shnenglu.com/menjitianya/archive/2014/05/25/207098.htmlhttp://www.shnenglu.com/menjitianya/comments/207098.htmlhttp://www.shnenglu.com/menjitianya/archive/2014/05/25/207098.html#Feedback0http://www.shnenglu.com/menjitianya/comments/commentRss/207098.htmlhttp://www.shnenglu.com/menjitianya/services/trackbacks/207098.html 

A. Up and Down
       
PKU 3912 http://poj.org/problem?id=3912

 

       题意Q给定一个一l的盘Q范围ؓ[0, W] (W <= 1000,000,000)Q某两个点之间有梯子或虫z,梯子的下端点C端点以及虫洞的上端点C端点p的步Cؓ0Q其它Q意点之间的距通过跌来计,最多每ơ蟩跃不过S|S<= 6Q,跌的过E中如果跛_梯子的下端点或者虫z的上端点就会被直接传送到另一端,q且每次跌只能从小的点跛_大的点(虫洞是个例外Q,求从0?/span>W的最短距R?/span>

?/span>A-1

       题解Q?/span>

              L?/span> + SPFA?/span>

       所有梯子和虫洞的两端点?/span>0?/span>W以及他们往前往?/span>S步以内的数全部记录下来,梯子和虫z有PQ?/span>P <= 40Q个Q加上v点终点,d82个点Q算上前后各六步Qd82 * 13 = 1066个点Q然后将q些Ҏ序后L化,最后就是要构徏一个网l图Q通过|络?/span>0?/span>W的最短\Q最短\可以?/span>SPFA求解?/span>

       谈谈建图的过E,对于L两个点,他们之间必定可以q一条边Q然后有一个步数表C的权|q里的步C可能是正无穷Q也xq都无法到达Q?/span>

       对于L两个?/span>(u, v)Q他们的步数w(u, v)Q边权)我们做如下讨论(q里?/span>u?/span>v是离散化后的点)Q?/span>

       1Q如?/span>u是梯子的下端点,v是梯子的上端?/span> 或?/span> u是虫z的上端点,v是虫z的下端点,那么w(u, v) = 0Q否则进?/span>2)的判?/span>;

2Q如?/span>u的编号大?/span>vQ?/span>w(u, v) = infQ表C永q不可达Q因为某ơ蟩跃只能从的点蟩到大的点Q否则进?/span>3Q的判断;

3Q如?/span>u的实际位|和v的实际位|差值小于等?/span>SQ则w(u, v) = 1Q?/span>

4Q检?/span>u?/span>v之间是否有虫z的上端Ҏ者梯子的下端点,之后这两种点称?/span>X?/span>

aQ如果有Q判断他们是否连l,

i) 如果不连l?/span>w(u, v) = infQ这一步这么做是ؓ了简单化Q试想一下,如果X点不是全部连l,说明u可以先蟩C们中间的某个?/span>X的点Q然后再跛_v点,q一步是通过SPFA来实现P代的Q徏边的时候可以不考虑Q?/span>

iiQ如果连l,判断他们q箋的格子的数目Q如果大于等?/span>S说明q个q箋的块必定跳不q去Q所?/span>w(u, v) = infQ否则可以先跛_最先的一?/span>X点的前面一个点Q然后经q一?/span>S跌这个连l块跌去,再蟩?/span>v?/span>

              bQ如果没?/span>X点,那么直接?/span>u点蟩?/span>v炏V?/span>

       q里我们需要计从a点蟩?/span>b点不考虑虫洞和梯子的最短距,可以贪心的蟩Q每ơ往大的跻I直到剩余格子不S|?/span>(b-a + S-1) / S Q?/span>b-a?/span>S求商的上_?/span>

       边徏立完成就可以利用q搜求解0-W的最短\了?/span>

 

B. Gnome Sequencing
       
PKU 3913 http://poj.org/problem?id=3913

       水题Q判断三个数是全递增q是全递减q是无序?/span>

 

C. DuLL
       
PKU 3914 http://poj.org/problem?id=3914

       题意Q给定一?/span>dll文g和它占用的内存空_以及一些可执行E序占用的内存空间和它依赖的dll文gQ程序以q程为单位,两个相同的程序可能有不同的进E,q行一些下列的操作Q?/span>

       1Q某个程序运行的时候需要它依赖?/span>dll文g也加载到内存中,多个E序可以q一?/span>dll文gQ?/span>

       2Q某个程序退出的时候,如果它所依赖?/span>dll文g没有其它E序使用Q需要释放这D内存空_

       l定一pd的运行进E,求某个时ȝ最大内存占用?/span>

 

       题解Q?/span>HASH的简单应用?/span>

       初始化内存占?/span>V = 0Q?/span>

       对于l定的输入进E:

       1Q如果是新运行的q程Q将V加上q个q程的内存占用,q将它所有依赖的dll文g查一遍,如果引用计数?/span>0Q则对?/span>dll文g的内存篏加到V上,引用计数+1Q?/span>

       2Q如果是退E,?/span>V减去q个q程的内存占用,q将它所有依赖的dll文g查一遍,如果引用计数?/span>1Q则?/span>V减去对应dll文g的占用量Q引用计?/span>-1Q?/span>

       每次操作记录最大的V是最后的{案?/span>

D. Black Vienna
       
PKU 3915 http://poj.org/problem?id=3915

       题意Q三个hQ每个h五张牌,互相不知道对方的牌,q有额外的三张牌攑֜一边(所有牌~号?/span>A - RQ。每一轮,?/span> (i-1)%3+1 (1 <= i <= 15) L家进行发问,?/span>Ai  (1 <= Ai <= 3) L?/span>XYZQ代表Q意三个牌P三张牌中有多张在他手上Q然后他回答Bi (0 <= Bi <= 3)Q问l过多少轮之后有某位玩家知道 额外 的那三张牌是什么?/span>

      题解Q?/span>dfs枚D + 剪枝?/span>

       首先枚D到某个询?/span>i的时候玩?/span>j能够猜出的那三张牌的情况Q如果枚丑֮所有情冉|后确定只有一个解满条g的时候,那个询问的编?/span>i是{案了?/span>

       cMIDA*的思\Q先枚D询问最大深度,如果到达那个询问不能定额外的那三张牌或者有很多U情况,那么说明q需要更多的询问QP代深度l枚举?/span>

       对于某个询问iQ找到询问的那三张牌中已l是Ai号选手的数?/span>ansCntQ以及尚未确定牌的归属的牌的数量xCntQ如果已l确定位|的牌数?/span> 大于 实际他回{的数量Q?/span>ansCnt  >  BiQ或?/span> 未定位置的牌数量 + 已经定Z的牌数量 实际他回{的数量Q?/span>ansCnt + xCnt < BiQ都是不合理的情况,剪枝Q不用l往下搜索;

       否则Q将(Bi - ansCnt)张牌分配l?/span>AiQ?/span>(xCnt - (Bi - ansCnt))张牌分配l其它两位玩家以及额外的那一堆,q里需要用到嵌?/span>dfs枚DQ枚丑֮后进入下一个询问的枚DQ每ơ询问的时候可以有几个剪枝Q?/span>

       1Q如果某个阶D|个h的牌数超q?/span>5张;

       2Q枚丄解的数量过2个;

       3) 对于一ơ完全枚举,枚D完所有询问后q是有无法确定三张额外的牌的情况Q?/span>

      

E. Duplicate Removal
       
PKU 3916 http://poj.org/problem?id=3916

       水题Q对输入的元素进行连l判重输出?/span>

 

F. Rock, Paper, Scissors
       
PKU 3917 http://poj.org/problem?id=3917

       水题Q剪刀矛_布!O_o

 

G. A to Z Numerals
       
PKU 3918 http://poj.org/problem?id=3918

       题意Q复杂模拟。(没做出来Q?/span>#-_-# 样例?/span>98是怎么出来的呀Q!Q)

 

H. Cell Towers 
       
PKU 3919 http://poj.org/problem?id=3919

       题意Q给Z条曲折的q箋U段Q曲U从L开始每l过一个长度ؓ1的单位会攄一个守?/span>KQ在曲线以外的某些地方会?/span>T(T <= 10)个信号发器Q用A?/span>B?/span>C...来表C,每个信号发射器有它的信号强度PiQ每个信号发器到守?/span>K的距d果是DQ那么它能接收到的信号gؓPi / D2的最q整敎ͼq且对于守卫KQ它只会接收最大的信号|如果有多个发器对于K的信号值相同,那么选择字典序最的发射器。需要求是一些守卫集合,q些守卫分别和它的前一个守卫所接收的信号发器不一栗?/span>

       题解Q计几何、向量的单应用?/span>

       对于每条线Q终点减去v点,再单位化后就可以得到q条线的单位向量,利用q一点可以很单的所有守卫的坐标求出来,然后对于每个守卫判断接收的是哪个发射器,判断和之前那个守卫是否相同即可?/span>

       需要注意的是最后一个守卫,当和上一个守卫距d?/span>0.5的时候不会徏立新的守卫?/span>

 

I. RIPOFF
       
PKU 3920 http://poj.org/problem?id=3920

       题意Q给?/span>N(N <= 200)个数的一l数l?/span>AQ取不大?/span>T+2个数Q每盔R两个C间的下标不大?/span>SQ问最大的取值d(W?/span>0个和W?/span>N+1个数必取Q且权gؓ0)?/span>

       题解Q动态规划?/span>

       DP[i][j] 表示W?/span>j个数?/span> A[i]的最大|那么状态{ULE可以表CZؓQ?/span>

       DP[i][j] = max{ DP[k][j-1] + A[i],  i > k > i-1-S && k >= 0};

       Ҏ的,DP[0][0] = 0Q其他的DP[i][j] 都初始化?/span>INF;

       最后计出?/span>DP[N+1][i]中的最大值就是答案了?/span>

       



]]>
South America 2002 解题报告http://www.shnenglu.com/menjitianya/archive/2014/05/18/207005.html英雄哪里出来英雄哪里出来Sun, 18 May 2014 09:10:00 GMThttp://www.shnenglu.com/menjitianya/archive/2014/05/18/207005.htmlhttp://www.shnenglu.com/menjitianya/comments/207005.htmlhttp://www.shnenglu.com/menjitianya/archive/2014/05/18/207005.html#Feedback2http://www.shnenglu.com/menjitianya/comments/commentRss/207005.htmlhttp://www.shnenglu.com/menjitianya/services/trackbacks/207005.html 

AQ?/span>Grandpa's Rubik Cube
       PKU 1290 http://poj.org/problem?id=1290

 

       题意Q给定一?/span>3X3的六面魔方(每个面有3X3个块Q,求经q某些旋转之后能否得所有面的颜色都相同Q旋转包括对某个面进行顺旉和逆时针旋转(?/span>12U情况)?/span>

?/span>A-1

       如图1Q输入数据ؓ左图的Ş式,叛_l对应的面编P头方向为顺旉旋{方向?/span>

+A表示?/span>Aq个面进行一ơ顺旉旋{Q?/span>-B表示?/span>Bq个面进行一ơ逆时针旋转。问l过一定的+A/-B操作之后能否使得所有面?/span>3X3个字母都相同?/span>

 

       题解Q模拟题

       做法很多Q这里介l一U比较容易理解的状态记录方式,考虑某次旋{Q一定是旋{某个面,然后寚w接的四个面的某条边进行顺ơ^UR如?/span>A-2, 2号面的旋转带动的?/span>1?/span>5?/span>3?/span>6四个面?/span>

?/span>A-2

       我用一个数l?/span>rotate_n来记录某个面旋{的时候带动的面的~号集合Q编号ؓ0的数据ؓ占位W)Q那么有Q?/span>

int rotate_n [7][4] = {

    {0, 0, 0, 0}, {4, 5, 2, 6}, {1, 5, 3, 6}, {2, 5, 4, 6}, {3, 5, 1, 6}, {1, 4, 3, 2}, {1, 2, 3, 4}

};

       光记录带动的面是哪些q不够,q需要知道带动面的对应边Q对于一个魔方的一个面Q我们编号如下:

Q?/span>0,0Q(0,1Q(0,2Q?/span>

Q?/span>1,0Q(1,1Q(1,2Q?/span>

Q?/span>2,0Q(2,1Q(2,2Q?/span>

       分别?/span>1?/span>4来代表一个面的四条边Q注意,有方向)Q?/span>

1 (0,2) - (0,0)

2 (2,2) - (0,2)

3 (2,0) - (2,2)

4 (0,0) - (2,0)

       那么同样?/span>rotate_p来记录某个面旋{的时候带动的面对应的边,则有Q?/span>

int rotate_p[7][4] = {

       {0, 0, 0, 0}, {2, 4, 4, 4}, {2, 3, 4, 1}, {2, 2, 4, 2}, {2, 1, 4, 3}, {1, 1, 1, 1}, {3, 3, 3, 3},

};

       q样一来,我们只需要考虑一个面的旋转,然后套用对应的数据即可,q有一个比较y妙的是,逆时针旋转不需要特D处理,直接顺旉旋{执行三次卛_?/span>

BQ?/span>This Sentence is False
       
PKU 1291 http://poj.org/problem?id=1291

       题意Q给定一些句子Ş?#8220;Sentence X is true/false”的句子,X表示W几个句子,问所有的情况是否合法Q如果合法,输出最大的可能为真的句子?/span>

       题解Q?/span>2-sat?/span>

       每个句子抽象成两个结点,为真的时候ؓXQؓ假的时候ؓX '?/span>

       a) 对于W?/span>X个句子,如果?/span> Sentence Y is trueQ?/span>

              则这个句子ؓ真的时候, X ->Yq边Q?/span>

              当这个句子ؓ假的时候,X ' -> Y 'q边Q?/span>

       b) 对于W?/span>X个句子,如果?/span> Sentence Y is falseQ?/span>

              则这个句子ؓ真的时候, X ->Y 'q边Q?/span>

              当这个句子ؓ假的时候,X ' -> Yq边Q?/span>

       然后求一ơ强q通,如果最后有某个?/span>X?/span>X ' 在同一个连通图中,说明逻辑错误Q说明必然存在不合法的情况,否则对于每个q通分量,求出为真的点的个数和为假的点的个敎ͼ然后他们之中的大者篏加,最后答案除2是最大的可能为真的句子(?/span>2的原因是因ؓ真假是对U的Q?/span>

CQ?/span>Will Indiana Jones Get There?
       
PKU 1292 http://poj.org/problem?id=1292

       题意Q营救公主,营救路线要么l着墙走Q要么走两面墙的最短距(q种情况下需要在两面墙之间搭一块木板,q且可以反复使用Q。问营救q程中木板的最短长度?/span>

?/span>C-1

       题解Q线D距?/span> + 二分{案

       因ؓ木板可以反复使用Q所以我们可以假讑֦果木板越长,能够营救公主的概率就大Q反之则小Q所以问题就是求满两点可达的最木杉K度,可以二分枚Dq个长度TQ如果两面墙的最短距d于这?/span>TQ表明两面墙不可达,墙抽象成点Q两面墙之间的最短距d以通过U段和线D늚最短距预处理出来Q然后每ơ二分答案后通过一ơ搜索就可以扑ևL和终Ҏ否可达,复杂度ؓOQ?/span>n^2Q即计算两线D距L候的复杂度?/span>

 

D. Duty Free Shop
       
PKU 1293 http://poj.org/problem?id=1293

       题意Q给?/span>M(M <= 1000)个白巧克力和L(L<= 1000)个黑巧克力,然后l定N(N <= M + L)个容量ؓCi的盒子,问能否找CU方案,使得某些盒子放满白y克力Q剩下的盒子放满黑y克力?/span>

       题解Q背包问题?/span>

       ׃需要将每个盒子都放满,于是可以利用一l背包的求法?/span>Ci的所有小于等?/span>M的可行组合求出来Q找到最大的M ' <= MQƈ?/span>M ' 能够通过某种方式被组合出来,那么所有盒子的定wSum 减去 M ' 的差于{于L的话Q必定能剩下的盒子填满黑y克力Q否则无解?/span>

       q题需要记录前驱,q且注意M = 0 以及 L = 0 的情况(主要是在输入的时候判断退出条ӞM+L==0退ƈ?/span> (M&&L) == 0Q?/span>

 

EQ?/span>Not Too Convex Hull
       
PKU 1294 http://poj.org/problem?id=1294

       题意Q给?/span>N(N<=101)个点Q没有三点共U的情况Q,要求?/span>B(B<=50)根皮条将q?/span>N个点圈成B个部分,每个部分Z个凸多边形,q且所有凸多边形公用一个点Q这个点会给出)Q求众多Ҏ中满x有多边Ş面积和最的Ҏ。图E-1表示用两根皮条圈?/span>19个点的情况(原点q了两ơ)?/span>

?/span>E-1

       题解Q环形动态规划?/span>

       首先所有点按照l定的原点进行极坐标排序Q那么第1个点到第N个点必定是按照极坐标严格逆时针排布的Q因为没有三点共U)Q用DP[i][b]表示W?/span>i个点到第N个点l过bơ分割后分割完的凸多边Ş的面Ud最|那么Q?/span>

DP[i][b] =min{ area[i][k] +DP[k+1][b-1]   (i < k < N) }; Ҏ的,DP[0][0] = 0;

     area[i][j] 表示极坐标在W?/span>i个点和第j个点之间的所有点(包含q两个点)加上原点l成的凸包的面积Q可以通过初始化预处理出来Q?/span>

     ׃Ҏ极坐标排列的Q也是W一个点不一定是凸包边上的点Q有可能是第N-1个点到第2个点l成的凸包达到整体最优)Q所以需要做N?/span>DPQ可以将所有点复制一份,枚DLi ( 1 <= i <= N)Q终点即i+N, 然后分别做一?/span>DP取最倹{?/span>

     旉复杂?/span>O(N^2 * B)?/span>

 

FQ?/span>I hate SPAM, but some people love it
       
PKU 1295 http://poj.org/problem?id=1295

       题意Q?/span>N(N<=20)个h互发邮gQ某个h收到邮g后一定会回复l他所有的好友Q回复的数量军_他的U号Q按序l定首先发v邮g的hQ要求按序输出所有h得到的称受?/span>

       题解Q深搜枚举?/span>

       数据量很,对于l定的初始者作v点进行遍历,每个人只讉K一ơ,讉K到的时候根据他的朋友数量计他的称号即可?/span>

 

GQ?/span>Noise Effect
       
PKU 1296 http://poj.org/problem?id=1296

       题意Q给定两个正方Ş矩阵Q求他们的最大相似度Q相似度的定义ؓ矩阵元素对应位差值小于等?/span>100的个数占所有矩阵元素的癑ֈ比(可以q行旋{和翻转)?/span>

       题解Q模拟题?/span>

       每个矩阵可以q行四次旋{Q每ơ旋转可以有水^{、竖直翻转、水q竖直翻转、保持原样四U状态,一共十六种情况Q实际小?/span>16U,因ؓ有些状态经q翻转和旋{之后是一LQ,ҎU情冉|拟计相似度取最大值即可?/span>

 

HQ?/span>Supermarket
      
 PKU 1297 http://poj.org/problem?id=1297

       题意Q约需要买M(M<=100)件物品,市场上的物品都排成一排,一?/span>N(N<=100000)件物品,他从左向叛_始选物品,但是Z不麻烦,不想走回头\Q而且W?/span>i个物品买的条件是Q前iQ?/span>1个物品必dl买了,但是每个物品在超U市Z的hg一P即同一个物品也有不同的hQؓ了花Ҏ,他想要一个方案得:

       1) 按顺序购?/span>M个物品;

       2) Mh值最,q输个最|如果Ҏ不存在,输出Impossible?/span>

 

       题解Q动态规划?/span>

       DP[i][j]表示W?/span>i个购买列表中的物品和W?/span>j个市Z的物品匹配时的最消费(1<=i<=M,1<=j<=NQ?/span>;

       Min[i][j]表示min{ DP [i][x]  x<=j };

    a)当第i个物品和W?/span>j个市场物品编L同时Q?/span>DP[i][j] = Min[i-1][j-1] +cost[j];

       b)否则DP[i][j] = inf; 计算DP数组同时更新Min数组Q由于每ơ的状态最多和上一行有养I所以在q行状态{Uȝ时候可以采用滚动数l。时间复杂度O(NM)?/span>

 



]]>
Ʒþþþþþ| þþþþۺһĻ| þþƷ99Ʒ| ɫۺϾþ| Ļav鲻þ | ޾Ʒ99þþþĻ| þùӾƷŮ| þ99þ99Ʒӿ| ɫþþۺƷ| þWWW˳һƬ| ŷƷۺϾþ| Ļþ2017| Ĺ˾Ʒþò| 99ȳ˾ƷȾþ | ƷþþĻ| þþƷվ| 97þþþ| þþƷѲ| ɫۺϾþþþۺ99| ۺϾþþƷɫ| ޹Ʒþþ| þùƷHDAV| þþƷһ| þþþùƷ鶹ARӰԺ | þAV| ҹavþþþ| þ99Ʒþþþþþþþ| þþ91Ʒһ | һɫۺþ| þùɫAVѿ| þþƷƵ| ˾þۺӰԺ| þþþþëƬѲ| þþþӰԺ| þþþþþþƷŮ99| þþþþëƬѲ| þþþù| þþƷ99þ㽶ɫ| þùֱ| þþƷaĻؿ| Ʒþþþþþþþ |