原创 CodeForces - 1051D(dp)

題解: 第 i 列的狀態有四種:(黑,黑),(黑,白),(白,黑),(白,白),設爲0(0,0), 1(0,1), 2(1,0), 3(1,1)。 dp[i][k][j]:i 表示第 i 列,k 表示有 k 種,j 表示第 i 列的狀態。

原创 CodeForces - 1060C(前綴和+思維)

題意: 有一個長度爲 n 的 a 數組和長度爲 m 的 b 數組,讓這個一維矩陣相乘得到二維的矩陣,求最大子矩陣的和小於或等於 x。 題解: 有一道原題,區間範圍是1000,時間複雜度是O(n^3),用在這裏會超時。(Hihocoder

原创 HDU 5137 How Many Maos Does the Guanxi Worth(最短路+枚舉)

題解: 首先先跑一遍最短路,用pre數組記錄最短路路徑,枚舉路徑上的所有點(不包括 1 和 n),標記這些點再來跑最短路記錄其中最大的最短路。 #include <algorithm> #include <iostream> #inc

原创 CodeForces - 1060B(貪心)

題意: 有n個人,他們希望可以坐成多個圈,並且他們要求左邊要有 l[i] 個空凳子和 r[i] 個空凳子,求最少需要多少個凳子。 題解: 貪兩個人的左和右相差不大的,即我們可以小對小,大對大,讓他們可以達到最優使用空凳子,所以排序所有人的

原创 HDU 5135 Little Zu Chongzhi's Triangles(貪心)

題解: 貪心從大到小排序加遍歷,三個一起遍歷從大到小,如果滿足三角形條件都可以加上答案。 #include <algorithm> #include <iostream> #include <cstdlib> #include

原创 ACM-ICPC 2018 徐州賽區網絡預賽 A.Hard to prepare(數論+遞歸)

題意: 有 2^k 個數字[0~2^k-1],將其圍成一個圈(可以多次使用),在任何位置的數字其左右兩邊都不可以是它的補碼。問一共有多少種情況。 題解: 我們可以通過對每一個位置進行選擇處理,如第一個可以放 2^k 種,則下一個一定是 2

原创 HDU 6223 Infinite Fraction Path(bfs+剪枝)

題解: 對前部有相同數值進行bfs,就相當於一起走。 剪枝: 1.如果下一步是你已經走過,並且比現在的步數要高則可以去掉; 2.如果數值小於當前這步最大值也可以去掉; 3.把狀態按照步數小,數值大排序可以節省時間。 #include <

原创 HDU 6219 Empty Convex Polygons(最大空凸包)

題解: 待定 #include <algorithm> #include <iostream> #include <cstdlib> #include <cstring> #include <cstdio> #inclu

原创 CodeForces - 679B(dfs)

#include <algorithm> #include <iostream> #include <cstdlib> #include <cstring> #include <cstdio> #include <

原创 HDU 6228 Tree(思維)

題解: 我們只要知道一條邊的左右點數都大於 k 則說明這一條邊是可以走的。 我們通過對度爲0的點放進隊列中,一層一層加點去度就可以做到每一個點前面所承載的點數(包括自己)。 #include <algorithm> #include

原创 HDU 6229 Wandering Robots(思維)

題解: 假設所有的點都沒有障礙,則設分子 a = 3*3+(n-2)*2*4+(n-2)*(n-1)/2*5,分母 b = 3*4+(n-2)*4*4+(n-2)*(n-2)*5。 在(x,y)上加入障礙,則總和的分母要減去當前的點即 b

原创 BNU53079--雷電爆裂之力

題意: 有n條京師路與木鐸路之間的路,m條木鐸路與金聲路之間的路,k條金聲路與新街口外大街之間的路,路的長度是1m。每個階段的速度都是1m/s,可以從京師路任何點開始到新街口外大街任何點,求京師路到新街口外大街的最短時間。 題解: 影響結

原创 CodeForces - 327A

#include <algorithm> #include <iostream> #include <cstdlib> #include <cstring> #include <cstdio> #include <

原创 ACM-ICPC2018北京網絡賽 Saving Tang Monk II

題意: S是起點,T是終點,B是加氧氣點並花費一分鐘,. 是任何條件都可以走並花費一分鐘,#是要有氧氣的情況下可以走但是要花費兩分鐘,P是可以少一分鐘。 最多可以帶5個氧氣瓶,問從起點到終點最小花費時間。 題解: 每一點有6個狀態,即 0

原创 ACM-ICPC 2018 南京賽區網絡預賽--J Sum

題意: 6 = 1*6 = 2*3 = 3*2 = 6*1,12 = 2*6 = 6*2(12可以被2^2整除),這樣 f(6) = 4,f(12) = 2,求 f(1) ... f(n) 的和。 題解: 其實我們把數字拆成質數相乘就會發