摘要: 间隔小的时候dp预处理,大的时候暴力。。正确做法不会。。。 dp[i][j]表示以i为开头,间隔为j的和,递推:dp[i][j] = dp[i + j][j] + a[i] 测试数据中间隔可能是0...... #include<cstdio> #include<cstring> #include<c 阅读全文
posted @ 2016-03-07 09:51 Fighting_Heart 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 水题。 #include<cstdio> #include<cstring> #include<cmath> #include<string> #include<algorithm> using namespace std; long long L, R; string Q = "XHUSTACM" 阅读全文
posted @ 2016-03-07 08:29 Fighting_Heart 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 暴力打表。 #include<cstdio> #include<cstring> #include<cmath> #include<string> #include<algorithm> using namespace std; long long a[10000]; long long L, R; 阅读全文
posted @ 2016-03-07 08:28 Fighting_Heart 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 首先进行一次括号匹配,把正确匹配的全部删去。 删去之后剩下的状态肯定是 L个连续右括号+R个连续左括号。 如果L是偶数,答案是L/2+R/2; 否则答案是 (L-1)/2+(R-1)/2+2; #include<cstdio> #include<cstring> #include<cmath> #i 阅读全文
posted @ 2016-03-07 08:27 Fighting_Heart 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 预处理一下,然后o(1)询问。 #include<cstdio> #include<cstring> #include<cmath> #include<string> #include<stack> #include<map> #include<algorithm> using namespace 阅读全文
posted @ 2016-03-07 08:25 Fighting_Heart 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 水题。 #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); 阅读全文
posted @ 2016-03-07 08:24 Fighting_Heart 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 首先,1000000能被64整除。 也就是说Y=X*1000000+P,当P能被64整除(P在1--6位之间),X任意的时候,Y也能被64整除。因此暴力算一下1--6位的数字中哪些能被64整除,再看看这些数组成Y形式的有几种。 #include<cstdio> #include<cstring> # 阅读全文
posted @ 2016-03-07 08:22 Fighting_Heart 阅读(184) 评论(0) 推荐(1) 编辑
摘要: 这题真难,并不会推理。。。 #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; long long a, b, c; int p; int main() { int T 阅读全文
posted @ 2016-03-07 08:20 Fighting_Heart 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 简单广搜。4进制对应的10进制数来表示这些状态,总共只有(4^12)种状态。 #include<cstdio> #include<cstring> #include<cmath> #include<map> #include<queue> #include<algorithm> using name 阅读全文
posted @ 2016-03-07 08:17 Fighting_Heart 阅读(203) 评论(0) 推荐(0) 编辑