原创 SRM 384

暴力SG值 #include <vector> #include <list> #include <map> #include <set> #include <deque> #include <stack> #include <bits

原创 SRM 562

這題分兩種情況考慮。 1、2*k<=n 這種情況需要中間一段(n-2*k+2長度)是一條直線,直線兩端分別接k-1個點,那麼這k-1個點形成一個星型,只要保證葉子節點比內部節點編號小就滿足情況(直線編號小的那端)。dp搞定。 2、2*k

原创 SRM 552

哭瞎了。。想了這麼幾天原來是道暴搜題。。。之前思路就沒錯,廣搜的時候不知道爲什麼爆掉了。。估計是內存沒開下就以爲很多。。。 就是如果a[i]*a[i]>left的時候,二分最大界j使得a[j]<=left,這一段一起統計就行了 #incl

原创 SRM div1 hard solutions(52)

622 620 619 618 617 616 615 614 613 612 611 610 609 608 607 606 605 604 603 602 601 600 599 598 597 596 595 594 593

原创 SRM 601

唔。。。做悲劇了QAQ 哭瞎!  250 一開始以爲蘋果的包和桔子的包不是同一個包。。。500 根本沒思路。。950 看的晚了(早看了也寫不完。。) 250pt 枚舉從每包裏那幾個,然後找到能拿的最小的蘋果數和最大的蘋果樹(中間那些情況

原创 SRM 589

分M大於17的情況和M小於17兩種 M大於17: 成段變化的一共只有N/M<17種,所以2^(N/M)枚舉哪幾段變化了,單個變化的貪心做 M小於等於17:dp[i][1<<17]來做,只要保存當前位置前的M個的值就夠了 #inclu

原创 SRM 399

水題,枚舉+最大流,數據小連二分都不用 果然前面場次水題多,還是老老實實做最近的那些吧- - #include <vector> #include <list> #include <map> #include <set> #inclu

原创 SRM 560

好神的思路- -  居然用圖論轉姿勢化式子 因爲是很多兩個變量的積加起來,那麼轉化成一張圖,就是右邊的兩個點的值乘積,求個和。 設想最後得到一個答案,如果某兩個點不相鄰,並且這兩個點沒有取到最值,點A周圍點的權值和是suma,點B周圍

原创 SRM 558

對網絡流的建圖又有了更深一步理解 http://pan.baidu.com/share/link?shareid=1648064038&uk=1090822741 看了這個以後。 大概思路就是吧多元關係轉化成兩元關係,每個點多加兩個收益

原创 SRM 554

矩陣連乘 本以爲很開心的一道題,矩陣構造太難寫了。。 0. 1. 2. 2. 3. 3. 4. 4. 4. 4. 5. 6. ab ab ab aa ab ab ab ab aa ac aa

原创 SRM 573

見過幾次座標旋轉的,還是沒掌握到精髓啊,完全沒往這邊想。 這題的轉變很巧妙。旋轉了45度,每步就變成(x+1,y+1),(x+1,y-1),(x-1,y+1),(x-1,y-1)四種選擇。 這樣每一步x和y都會變化,就可以獨立分開考慮了

原创 SRM 557

想了好久終於想清楚其中的正確性了 思路是把這n個數看成n個k維向量,然後這是個向量基,答案也是個向量基,這兩個基等價,就是可以互相表示,就滿足。 那麼 1、把向量基化成極小的向量,貪心方法,先把每個向量的最高位的位數變成不同的(類似解

原创 SRM 551

這道題就是算出k個sweet的選擇數,k個sweet生成樹的個數,乘起來就是答案。 選擇數是個揹包題,容量比較大,分成兩段暴力。 生成樹個數是無向圖生成樹個數,矩陣來求的(不會的自行百度)然後會多算了0~k-1個sweet的情況,減去重複

原创 SRM 574

先分聯通塊,左邊或者右邊,可以接起來如下圖: XX.. .X.. XX.. .... XX.. .X.. 第5行可以接起來第3行,成爲一個,這個可以用貪心搞定 ..... XXXXX ..... XX... .XXXX 但是上面這種第二行

原创 SRM 561

這題分兩部分 第一部分是k個點組成的樹邊的總長 第二部分是每兩*點的路徑,做爲了幾個k集合的直徑 第一部分: 就是求每個樹邊被幾個集合用到,其實就是這個邊去掉分成的兩部分,*的個數分別是a,b,那麼枚舉 i = (1~  min(a,k)