原创 2016MUTC9-1010 Jong Hyok and String
題解:將p串翻轉,間隔不同字符連接起來,進行一次後綴數組的操作。若strange set(Q)>0,那麼Q肯定是p串中一個的子串。所以Q串翻轉後,二分直接在後綴數組中找到邊界位置,lower和upper。 當不存在時,答案爲0; 當low
原创 2016MUTC10-1002 Hard problem
如圖,圖中S1的三邊已知,則可求S1,同時求出角度;S2+S1是個扇形也可求,此時可知S2;S2+S3也是個扇形,此時可知S3 #include <iostream> #include <cstdio> #include <cstdlib
原创 codeforces Round#369 div2-D tDirected Roads
題意:n個點n條有向邊(無自環),求邊的集合的方案數,使得翻轉這些邊的方向後無環。 題解:題目給出的圖不會環套環(環套環的話,至少有一個點要有兩個出度,但題目是每個點一個出度),所有直接求強連通分量,貢獻分兩種情況: 1.形成環的強連通:
原创 hdu5833 Zhu and 772002
題解:2000以內的質因數爲303個。 以質因數爲方程個數,a[i]的取或不取爲未知數,解xor的高斯方程 #include <iostream> #include <cstdio> #include <cstdlib> #include
原创 BestCoder Round #92-1002 Count the Sheep
#include <iostream> #include <cstdio> #include <cstring> #include <cstdlib> #include <cmath> #include <algorithm> #incl
原创 BestCoder Round #92-1003 Girls Love 233
#include <bits/stdc++.h> using namespace std; const int N=100+10; int dp[N][N][N/2]; char str[N]; int n,m,num,p[N];
原创 2016ACM/ICPC Qingdao Online-1004 Tea
題意:一壺茶的容量在[L,R]之間,依次倒入兩個茶杯中,需要保證最後茶壺中的茶<=1,兩個茶杯中的茶相差<=1,問至少需要倒幾次?(0<=L<=R<=10^16) 題解:爲了保證倒較少的次數,每次倒的要儘可能多,又要讓[L,R]中的每個數
原创 RQNOJ-8 2^k進制數
題意:給定k和w,求r的個數,其中r作爲2^k進制時至少要2位且每一位嚴格小於右邊,r作爲2進制時總位數不超過w。 (k<=9,w<=30000) 題解:若已知2^k進制下,最高位最大爲a,總位數爲b,則總數爲,其中。這個公式的意思是最高
原创 2016ACM/ICPC Shengyang Online-1002 List wants to travel
題意:給定一棵n個節點的樹,有兩種詢問:1.(a,b,c)把節點a到節點b上路徑的權值改爲c;2.(a,b)詢問節點a到b路徑上連續不同權值的個數(如1,2,3,3,1算4個) 題解:樹鏈剖分+線段樹統計區間權值的段數(好難想) 對於剖分
原创 BZOJ 2440 完全平方數 - 莫比烏斯反演
BZOJ 2440 完全平方數 參考PoPoQQQ神的ppt 首先二分答案 問題轉化爲求[1,x]之間有多少個無平方因子數 根據容斥原理可知 對於sqrt(x)以內所有的質數 有 x以內的無平方因子數 =0個質數乘積的平方的倍
原创 bzoj2301 - 莫比烏斯反演
bzoj2301 莫比烏斯反演 分塊處理 參考了PoPoQQQ神的ppt 不懂爲什麼讀入用cin就RE。QAQ #include <bits/stdc++.h> using namespace std; const int N=
原创 20162017-ct-s03e02-codeforces-trainings-season-3-episode-2-en-I Painting the natural numbers
題意:用10種顏色染1-n這n個數字,染色需滿足:a,b(a可以等於b)同一種顏色,則a+b必須是另一種顏色(n<=25000) 題解:若當前已用k種顏色染好n個數字,則可以擴展成3n+1個數字: {n個數字,k種顏色}{n+1個,第(k
原创 BAPC2010-I Keylogger
鏈表模擬 #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> #include <algorithm>
原创 cf#373div1-C
題意:長度爲n(n<=100000)的數列,有兩種操作(其中F(ai)爲fibonacci數列): 1.詢問[l,r] 之間f(ai)的和; 2.[l,r]之間的ai均增加v 。 題解:區間操作用到線段樹,線段樹維護矩陣。f(ai)的計算
原创 bzoj3529 - 莫比烏斯反演
bzoj3529 參考PoPoQQQ神的莫比烏斯反演ppt 取模利用自然溢出int 最後再對2^31-1取與。不然會超時QAQ。 寫代碼傳參數的時候傳炸了。。調試了極久 #include <bits/stdc++.h> us