原创 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