link:
結論:只要有乙個1,就能表示所有的正整數。
思路:好有趣!好有趣! ٩̋(๑˃́ꇴ˂̀๑)۶!
注意到,每乙個強連通分量都是一根棒棒糖(一根鏈 + 乙個環)。
把環拆成一條很長很長的鏈。然後根據尺取思想,只要有1,任何正整數都可以被表示粗來!
#include #include using namespace std;const int nico = 1000000+10;
int n, q;
int a[nico], c[nico];
int main()
int ok = 0;
for(int i=1;i<=n;i++)
for(int i=1;i<=q;i++)
}}
codevs4696 等差數列
題目大意 給定 n 個整數組成的集合,向集合中新增乙個整數,使得這 n 1 個整數組成等差數列,求這樣的整數有多少個。題解 引理1 若原集合中只有乙個元素,則有無數種可能。引理2 若原集合中有且僅有兩個整數,則最多可能有 3 種答案。引理3 若原集合已經能夠組成等差數列,則只能在序列首尾新增元素。引...
hdu1285 hdu4857 拓撲排序
一 原題內容 problem description 有n個比賽隊 1 n 500 編號依次為1,2,3,n進行比賽,比賽結束後,裁判委員會要將所有參賽隊伍從前往後依次排名,但現在裁判委員會不能直接獲得每個隊的比賽成績,只知道每場比賽的結果,即p1贏p2,用p1,p2表示,排名時p1在p2之前。現在...
樹狀陣列 hdu2689 hdu2838
題意 給定乙個正整數n,和乙個1 n的乙個排列,每個數可以和旁邊的兩個數的任意乙個交換,每交換一次總次數就要加一,問將這個排列轉換成乙個遞增的排列需要多少次交換?題意可以轉換成求這個排列的逆序對數。include include include include using namespace std...