摘要:
间隔小的时候dp预处理,大的时候暴力。。正确做法不会。。。 dp[i][j]表示以i为开头,间隔为j的和,递推:dp[i][j] = dp[i + j][j] + a[i] 测试数据中间隔可能是0...... #include<cstdio> #include<cstring> #include<c 阅读全文
摘要:
水题。 #include<cstdio> #include<cstring> #include<cmath> #include<string> #include<algorithm> using namespace std; long long L, R; string Q = "XHUSTACM" 阅读全文
摘要:
暴力打表。 #include<cstdio> #include<cstring> #include<cmath> #include<string> #include<algorithm> using namespace std; long long a[10000]; long long L, R; 阅读全文
摘要:
首先进行一次括号匹配,把正确匹配的全部删去。 删去之后剩下的状态肯定是 L个连续右括号+R个连续左括号。 如果L是偶数,答案是L/2+R/2; 否则答案是 (L-1)/2+(R-1)/2+2; #include<cstdio> #include<cstring> #include<cmath> #i 阅读全文
摘要:
预处理一下,然后o(1)询问。 #include<cstdio> #include<cstring> #include<cmath> #include<string> #include<stack> #include<map> #include<algorithm> using namespace 阅读全文
摘要:
水题。 #include<cstdio> #include<cstring> #include<cmath> const int maxn = 100 + 10; char s[maxn], v[maxn], h[maxn]; int main() { int T; scanf("%d", &T); 阅读全文
摘要:
首先,1000000能被64整除。 也就是说Y=X*1000000+P,当P能被64整除(P在1--6位之间),X任意的时候,Y也能被64整除。因此暴力算一下1--6位的数字中哪些能被64整除,再看看这些数组成Y形式的有几种。 #include<cstdio> #include<cstring> # 阅读全文
摘要:
这题真难,并不会推理。。。 #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; long long a, b, c; int p; int main() { int T 阅读全文
摘要:
简单广搜。4进制对应的10进制数来表示这些状态,总共只有(4^12)种状态。 #include<cstdio> #include<cstring> #include<cmath> #include<map> #include<queue> #include<algorithm> using name 阅读全文