發現自己構造太菜了
於是決定上cf按tag找題來做
不定期更新
是cf上2000-2500的構造題
cf1506f
題意太長不翻譯了(
把原圖路徑畫一畫,大概是一堆這樣的東西
構造路徑的時候,按照斜線分組
如果兩個點在同一組的話,那麼看它是奇數還是偶數
奇數的話要把所有的路徑變向,否則消耗為0
如果不在同一組,那麼產生的消耗就是跨越組的消耗。
#include usingcf925cnamespace
std;
struct
nodea[
200005
];int
temp(node a,node b);
int ans=0
;int
main()
else
else ans+=(a[i].d-a[i-1].d)/2
; }
}printf(
"%d\n
",ans);
}return0;
}
題意:給你一堆數字,排列這些數字,讓他們字首異或和遞增
sol:
考慮當前獲得了異或和$sum$
那麼,對下乙個數字的情況做分類討論
情況1:下乙個數字位數比自己高
那麼肯定比這個大
情況2:
下乙個數字和這個數字的最高位一樣,都是$1$
那麼顯然是變小的
情況3:
下乙個數字和$sum$在最高位不同,且$sum$在某個位置上是$0$
那麼,其實我們找到乙個最高位是這個位置的數字,把它放上去就好了,新的數字肯定比這個數字大
那麼我們就得到了乙個做法
列舉$n$個位置,記錄當前的$sum$,每次從低位到高位考慮,找到乙個$0$,找最高位為這個位置的數字,有就塞,沒有就繼續找就行了。
#include usingnamespace
std;
intn;
long
long a[100005
];vector
long>anss;
queue
long >bit[65
]; int
main()
}sort(a+1,a+n+1
);
long
long ans=0
;
for (int i=1;i<=n;i++)
}if (!flag)
}printf(
"yes\n");
for(auto x:anss)
return0;
}
CF1554D(神仙構造題)
構造乙個字串使得其每個子串都出現奇數次 考慮極為形式化的構造,擺一堆相同的字元上去,可以發現 那麼我們可以想到把讓相同的子串拼起來,使得偶數變成奇數,那麼我們需要乙個長度為 l 的字串和乙個長度為 l 1 的字串達到目標,但是我們需要保證這兩個串是相互獨立的,只需要在中間新增無關的字元 簡而言之,就...
菜雞CF記錄 只做出4題
在座標軸上給定兩點 分別為a 0,0 b x,y 定義乙個函式d a,b xa xb ya yb 問是否能找到一點 c 使得 d a,c d a,b 2 d b,c d a,b 2 其中 xc,yc 0ac include includeusing namespace std int main el...
cf水題記錄
記錄幾道水題 第一題題目鏈結 題目大意 給 n和m 問1 n裡面m的倍數中個位數的和是多少.某場div3的c題.n m肯定是1 n裡面m倍數的個數.那麼這些數裡面各位數的和怎麼算呢?分析一下可以知道最多10個數後就會進入迴圈.因為0 9只有10個數嘛.可以手動先把每個數的迴圈陣列算出來.當然這是最直...