原创 【luogu3353】在你窗外閃耀的星星 前綴和

坑點就是一個點上會有很多星星qwq #include<iostream> #include<cstdio> #include<cctype> using namespace std; int s[1010000],n,m,ToT,an

原创 【poj1845】Sumdiv 遞歸+數學

這題很有意思。首先根據唯一分解定理我們可以得知a=p1^k1*p2^k2*k3......pn^kn,然後將所有的因數加起來再用一下乘法結合律就成了(p1^0+p1^1+p1^2......+p1^k1)......(pn^0+....

原创 【poj1185】【NOI2001】炮兵陣地 狀壓dp

又是一道狀壓dp經典題! #include<iostream> #include<cctype> #include<cstdio> #include<cstring> #define M 1<<10 #define N 105 us

原创 【bzoj1087】互不侵犯king 狀壓dp

狀壓dp入門題!太經典了就不多bb了。 #include<iostream> #include<cstdio> #include<cstring> #define N 601 #define ll long long using na

原创 【poj2411】Mondriaan's Dream 狀壓dp

又是一道狀壓dp入門經典題!dp[i][j]表示第i行的狀態爲j時的狀態數。1表示放個豎着的。首先預處理判斷與0的個數,因爲只有偶數的時候才能放橫着的,轉移的時候只要與之前狀態邏輯與一下爲0並且邏輯或一下的狀態有偶數個0(邏輯與一下是因

原创 【poj3263】Tallest Cow 前綴和

前綴和水題。因爲求最優所以默認最大,每次給出了一對關係,我們都可以知道中間的數要小。前綴和處理一下即可。 #include<iostream> #include<map> #include<algorithm> #include<c

原创 【bzoj1001】[BeiJing2006]狼抓兔子 最小割

最小割板子,注意的是邊要開點的6倍,因爲一個點三條路再乘2就是6. #include<iostream> #include<queue> #include<cstdio> #include<cstring> #include<ccty

原创 【poj3662】Telephone Lines 二分答案+spfa

題意 給定一個無向圖,求點1~n的一個路徑,使路徑上第k+1條路的邊權儘量小。 題解 因爲花費多的答案一定包括花費少的答案,具有單調性。所以我們可以用二分答案來求解。每次將小於等於mid的邊設爲0,大於mid的邊設爲1。spfa跑一下

原创 【bzoj1053】[HAOI2007]反素數ant 搜索

Description   對於任何正整數x,其約數的個數記作g(x)。例如g(1)=1、g(6)=4。如果某個正整數x滿足:g(x)>g(i) 0<i<x ,則稱x爲反質數。例如,整數1,2,4,6等都是反質數。現在給定一個數N,你

原创 【poj2279】Mr. Young's Picture Permutations dp

Description Mr. Young wishes to take a picture of his class. The students will stand in rows with each row no longer

原创 【hdu1423】Greatest Common Increasing Subsequence dp

題意 給定兩個序列,求其lcis 題解 我們用f[i][j]表示在a[1~i]中和b[1~j]中以b[j]結尾的lcis 每次轉移 1 如果a[i]!=b[j] 那麼就是這個更新的a[i]沒啥子鳥用,f[i][j]=f[i-1][j]

原创 【NOI2016】區間 線段樹

題意 求有公共點的m個區間的最長區間的長度與最短區間長度的最小值。 題解 先將區間以長度爲關鍵字從小到大進行排序,易得最小值應該是排序後儘可能相近的兩個區間。用頭尾兩個指針控制,每次更新利用線段樹進行區間覆蓋來判斷是否符合有公共點的條

原创 【bzoj4300】絕世好題 dp

題意 給定一個長度爲n的數列ai,求ai的子序列bi的最長長度,滿足bi&bi-1!=0(2<=i<=len)。 題解 這個題目有點搞笑啊 我們用f[i]記錄當前第i位爲1的最長長度爲多少,每次更新一個新數判斷它的第幾位出現了1,然後

原创 【hdu6315】Naive Operations 線段樹

題目大意 給定一個序列b,以及一個初值爲0的序列a。要求支持a的區間+1以及區間詢問a[i]/b[i]的和。 題解 我們考慮對開一個線段樹,每個節點記錄當前a區間最大的值maxa 以及最小的值minb,區間當前情況下的a[i]/b[i

原创 【poj2155】Matrix 樹狀數組

題目大意 給定一個N*N的矩陣a,a矩陣的初值設爲0。T次操作,涉及區間翻轉0和1以及單點查詢。 2 <= N <= 1000, 1 <= T <= 50000 題解 我的做法好像跟其他人不太一樣qwq 用二維樹狀數組維護差分,每次(