bzoj 4975: [Lydsy1708月賽]區間翻轉【博弈論】
必敗狀態是倒序排列,也就是正序對為0
然後發現,每次翻轉都是有奇數個數對(\( C_{4x+2}^{2} C_{4x+3}^{2} \) 都是奇數),所以每次翻轉丟回改變正反數對的奇偶性
又因為偶數為必敗狀態,所以順序對為奇數則必勝
#include<iostream> #include<cstdio> using namespace std; int n,a[55],ans; int main() { scanf("%d",&n); for(int i=1;i<=n;++i) { scanf("%d",&a[i]); for(int j=1;j<i;++j) if(a[j]<a[i]) ans^=1; } ans?puts("Q"):puts("T"); return 0; }
相關推薦
bzoj 4975: [Lydsy1708月賽]區間翻轉【博弈論】
必敗狀態是倒序排列,也就是正序對為0 然後發現,每次翻轉都是有奇數個數對(\( C_{4x+2}^{2} C_{4x+3}^{2} \) 都是奇數),所以每次翻轉丟回改變正反數對的奇偶性 又因為偶數為必敗狀態,所以順序對為奇數則必勝 #include<iostream> #include<
BZOJ4975: [Lydsy1708月賽]區間翻轉( 博弈&逆序對)
4975: [Lydsy1708月賽]區間翻轉 Time Limit: 1 Sec Memory Limit: 256 MBSubmit: 265 Solved: 140[Submit][Status][Discus
bzoj4975: [Lydsy1708月賽]區間翻轉
題目 Solution 題解 ①每次翻轉區間,區間中的逆序對數和順序對數會互換 ②因為翻轉區間長度只能是4x+3, 4x+2,所以區間中的順序對數+逆序對數一定為奇數 ③最終必輸態是當前序列順序對數為0 由上可得:如果一開始順序
[KMP]BZOJ 4974 [Lydsy1708月賽]字串大師 題解
題目大意 給出一個長度為n的字串,求這個字串的所有字首的最小迴圈節,現在反過來,給出所有字首的最小迴圈節,求字典序最小的字串。(N≤100000)(N\le100000)(N≤100000) 解題分析
平衡樹【Splay】區間翻轉【模板】
luoguP3391一道模板題 學習了splaysplaysplay區間翻轉的姿勢 具體就是先建兩個虛擬節點1,n+21,n+21,n+2,然後按節點下標+1+1+1將區間樹建出來,這時候排名為kkk的
【思維題 kmp 構造】bzoj4974: [Lydsy1708月賽]字串大師
字串思博題這一塊還是有點薄弱啊。 Description 一個串T是S的迴圈節,當且僅當存在正整數k,使得S是T^k(即T重複k次)的字首,比如abcd是abcdabcdab的迴圈節 。給定一個長度為n的僅由小寫字元構成的字串S,請對於每個k(1<=k<=n
BZOJ 5128([Lydsy12月賽]尋找母串-區間dp)
題意:對於一個母串 S,令 T = S,你可以做無限次以下操作:選擇 T 中一個位置 (可以是最開頭也可以是最末端),往中間插入母串 S,並將新得到的字串覆蓋之前的 T。 比如,假設 S =hello
bzoj 5091: [Lydsy0711月賽]摘蘋果
bmi gpo c++ scanf 依次 can log 就是 幫助 5091: [Lydsy0711月賽]摘蘋果 Time Limit: 1 Sec Memory Limit: 256 MBSubmit: 148 Solved: 114[Submit][Status
bzoj 5093: [Lydsy1711月賽]圖的價值
價值 a* 得出 bsp www .com k次方 des lin 5093: [Lydsy1711月賽]圖的價值 Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 230 Solved: 123[Submit][Statu
bzoj4974: [Lydsy1708月賽]字符串大師
HA pri names break urn pos bre clas spa 突然發現這題我沒寫blog 首先假如a[i]==i的話,為了字典序最小肯定是取最小沒出現過的字母嘛。 否則不就是xjb取個%不就知道了? #include<cstdio>
bzoj 4836 [Lydsy1704月賽]二元運算 分治FFT+生成函數
AI gre add def mar sans 成了 while sizeof [Lydsy1704月賽]二元運算 Time Limit: 8 Sec Memory Limit: 128 MBSubmit: 577 Solved: 201[Submit][Stat
BZOJ.4919.[Lydsy1706月賽]大根堆(線段樹合並/啟發式合並)
ron line 位置 大於 啟發式 assert 嚴格 dfs dig 題目鏈接 考慮樹退化為鏈的情況,就是求一個最長(嚴格)上升子序列。 對於樹,不同子樹間是互不影響的。仿照序列上的LIS,對每個點x維護一個狀態集合,即合並其子節點的集合,然後用val[x]替換掉第一個
bzoj 5072 [Lydsy1710月賽]小A的樹——樹形dp
大小 color targe using pre namespace put 原來 base 題目:https://www.lydsy.com/JudgeOnline/problem.php?id=5072 發現對於每個子樹,黑點個數確定時,連通塊的大小取值範圍一定是一段區
BZOJ 5093: [Lydsy1711月賽]圖的價值
第二類斯特林數模版題 需要一些組合數的小$ trick$ 傳送門:here 題意:求所有$ n$個節點的無重邊自環圖的價值和,定義一張圖的價值為每個點度數的$ k$次方和,點有標號 $ Solution$ 顯然每個節點的貢獻是獨立的 列舉每個節點的度數,和這個點不聯通的邊可連可不連 $
[BZOJ 5072][Lydsy1710月賽]小A的樹
傳送門 樹形dp,注意賦初值 1 #include <bits/stdc++.h> 2 using namespace std; 3 #define rep(i,a,b) for(int i=a;i<=b;++i) 4 #define fgr(i,u) for(int
BZOJ 5390: [Lydsy1806月賽]糖果商店
F[i][j]表示總重量為i,最上面那個盒子中糖果種類為j的方案數 每次新加一個盒子,或者在原來盒子中加入一個糖 F[i][0]為中間狀態,優化轉移(表示最上面那個盒子不能加糖果) #include<cstdio> #include<algorithm> usi
bzoj4974: [Lydsy1708月賽]字串大師
nex[i] = i - pre[i]//pre[]為i所在的迴圈節長度。 前面確定了來推後面 如果nex[i] != 0的話,那麼i位置上的字元和j位置上的字元一樣 如果nex[i] == 0的話,i位置上的字元就要和所有有可能使nex[i] != 0的位置上的字元不一樣。 #in
BZOJ4977: [[Lydsy1708月賽]跳傘求生(不錯的貪心)
4977: [[Lydsy1708月賽]跳傘求生 Time Limit: 5 Sec Memory Limit: 256 MBSubmit: 446 Solved: 142[Submit][Status][Discu
bzoj 5092 [Lydsy1711月賽]分割序列——高維字首和
題目:https://www.lydsy.com/JudgeOnline/problem.php?id=5092 套路地弄一個字首異或和,就變成 f[ i ]=max_{j=0}^{i} { s[ j ] + (s[ i ]^s[ j ]) }。再套路地考慮按位貪心。 然後看了題解。按位貪心不是確定 f[
BZOJ4976: [Lydsy1708月賽]寶石鑲嵌
BZOJ4976: [Lydsy1708月賽]寶石鑲嵌 https://lydsy.com/JudgeOnline/problem.php?id=4976 分析: 本來是從\(k\le 100\)這裡入手,想了想還是不能列出一個和\(k\)有關的式子。 看到\(n\)有點大了,當\(n-k&g