摘要:
分块 将数组分成sqrt(n)块,每次进行区间操作或者查询的时候,对于完整的块可以通过预处理的信息o1得到, 不完整的块直接暴力跑,所以最坏复杂度是sqrt(n)。 分块模板 const int N = 100010, B = sqrt(N); int block; int st[B], ed[B] 阅读全文
摘要:
A a,b=map(int,input().split()) print(pow(a,b)) B n=int(input()) a=list(map(int,input().split())) q=int(input()) for i in range(q): op=list(map(int,inp 阅读全文
摘要:
A 每个字符出现次数都是偶数,直接拼接 def solve(): s=input() t=s print(s+t[::-1]) t=int(input()) for i in range(t):solve() B 奇数个的情况下n个相同的数字就可以,偶数情况下,可以选择n-2个2,然后1,3 def 阅读全文
摘要:
Dragon slayer 题解: 解法1:可以二进制枚举当前存在哪些墙,然后bfs; 解法2:可以观察到只有删掉墙才会有贡献,相当于边权为1,其他情况边权为0,采用状压01bfs 代码: #include <bits/stdc++.h> //#define int long long int _ 阅读全文
摘要:
B. Integral Array 思路: 枚举因子,$[x/y]=z,则yz<=x<=yz+y-1$ 代码: #include <bits/stdc++.h> #define int long long int _ = 0, Case = 1; using namespace std; #defi 阅读全文
摘要:
[POI2013]BAJ-Bytecomputer 思路: 动态规划,f[i][j],表示前i个第i个是以j结尾得最少操作次数 代码: package main import ( "bufio" . "fmt" "io" "os" ) var n int const N = 2000010 var 阅读全文