$n \leq 200000$的$1 \leq a_i \leq 6$的蚯蚓,有三種操作:讓乙隻隊頭蚯蚓接在乙隻隊尾蚯蚓後面;讓一隊蚯蚓從某個蚯蚓後面斷成兩隊;問:給個字串,問他的。。算了你們直接看題吧
這什麼沙雕題qaq
所有詢問的串只有$nk$種,把他們全丟進hash裡面就好了。。注意雙hash,乙個用來當鍊表乙個用來在煉表裡判重。
複雜度的話,只考慮合併是$nk$的(相當於把所有串算一次),而拆分是$ck^2$的,拆對合併的複雜度影響是跟拆本身複雜度一樣的。
1view code//#include
2 #include3 #include4
//#include5//
#include6//
#include7//
#include8//
#include
9 #include10 #include11
using
namespace
std;
1213
#define ll long long
14int
qread()
1519
20//
pay attention to '-' , ll and double of qread!!!!
2122
intn,m;
23#define maxn 200011
24#define maxh 1000007
25int a[maxn],bb[55]; ll cc[55
];26
27struct
hash
28edge[maxn*50]; int
first[maxh],le;
30 hash()
31void
in(ll x,int h,int
v)3237}
38 edge &e=edge[le]; e.to=x; e.v=1; e.next=first[h]; first[h]=le++;39}
40int find(ll x,int
h)41
47return0;
48}49}h;
5051
intnxt[maxn],pre[maxn];
52char s[maxn*50]; int
len;
53int
main()
5459
int op; char c; int
x,y;
60while (m--)
6179}80
}81else
if (op==2)82
97}98}
99else
if (op==3
)100
115 printf("
%d\n
",ans);
116}
117}
118return0;
119 }
loj 2721 NOI2018 屠龍勇士
有 n 條惡龍,每條惡龍有乙個初始生命值 a i 恢復力 p i 擊殺後會掉落一把劍.初始你有 m 把劍.給出每把劍的攻擊力.現在你打算按照以下方法殺掉所有惡龍 問最小的 x 如果不存在能殺掉所有惡龍的 x 輸出 1 有 t 組資料 n le 10 5,m le 10 5,t le 5,a i le...
loj 2719 NOI2018 氣泡排序
t 5,sum n le 2000000 考慮什麼樣的排列是好的.為了達到下界,p i 應該只向 i 的方向移動,也就是說,不存在乙個數左右都有逆序對,也就是說,不存在 a使得 p a p b p c 無視 q 的限制,可以用dp計算答案,設 dp i,j 表示確定了排列的前 i 個數,設其中最大值...
LOJ3342 NOI2020 製作菜品
題目鏈結 博主有幸參加了noi2020,考場上的經歷和心得請見這篇文章。這裡就不嘮叨了。本題的突破口在於 m 和 n 的關係。也就是資料範圍表裡這些奇怪的限制 m n 1 m geq n 1 m geq n 2 我們乙個乙個來看。顯然,n 種原材料,除了在輸出答案時,其他時候它們的原始順序對我們解題...