亚洲区预赛北京站应该是国内最难打的一站吧。。刚开始就没抱什么期待。比赛前一星期做了青岛的重现赛,5题银牌水平,突然就对北京有了一丝期待,但愿能获个奖,希望今年不白玩。
现场赛开始后刚开始,队友告诉我I题可以用数位dp做,连忙看起了i,另两个队友看起了A题。没过10分钟清华大学A题一血。增林老哥紧随其后没多久A题Accept。赛后问队友A题好像是传递闭包,然后自己今天补了一下这道题:链接
I题修修改改,找其中关系解决了n取1e5范围的所有可能。结果WA了,再读题才发现,它喵的这道题n的长度是1e5,而不是数字。。。那肯定规律题没跑了,让志愿者打印了之前处理前9位数的表。找到了规律。在第2个小时Accpet掉:链接
D题现场赛被我刨除相邻建传送门的可能。。从那之后思路再也没往那上面靠过。很遗憾没出,今天补了补20多分钟就出了,满心悔恨~还是自己脑子太笨了。。 链接
B题至今很迷,不知道问题出到哪儿了。我把WA的代码贴出来,希望大佬们能出一组样例Hack一下我的代码。。
#include <stdio.h>
#include <string>
#include <iostream>
#include <string.h>
using namespace std;
string str;
int num[205];
int ans[205];
int add[205];
char c;
int main () {
str.clear();
memset(ans, 0, sizeof(ans));
memset(add, 0, sizeof(add));
int tot = 0;
int flggg = 0;
int numm = 0;
while((c = getchar()) != EOF) {
if (c == '#') break;
if (c == '\n') {
tot++;
num[tot] = numm;
numm = 0;
if (str[str.length() - 1] >= '0' && str[str.length() - 1] <= '9') {
flggg = 1;
} else {
flggg = 2;
}
} else {
numm++;
if (c >= '0' && c <= '9' && flggg == 1) {
str += c;
flggg = 0;
} else if (flggg) {
numm++;
str += " ";
str += c;
flggg = 0;
} else {
str += c;
}
}
}
str += " ";
num[tot]++;
for (int i = 1; i <= tot; i ++) {
add[i] = add[i - 1] + num[i];
}
int flag = 0, start = -1, flaa = 0, num = 0;
for (int i = 0; i < str.length(); i++) {
if (flag == 1) {
if (str[i] >= 'a' && str[i] <= 'z') {
flag = 2;
} else if (str[i] >= '0' && str[i] <= '9' && flaa == 1){
flag = 2;
} else if (str[i] == ' '){
if (start != -1) {
if (num != 0) printf(" ");
for (int j = start; j < i; j++) {
printf("%c", str[j]);
}
num++;
for (int j = 1; j <= tot; j++) {
if (add[j] > start) {
ans[j] ++;
break;
}
}
}
start = -1;
flag = 0;
flaa = 0;
}
} else if (flag == 2){
if (str[i] == ' ') {
start = -1;
flag = 0;
flaa = 0;
}
} else {
if (str[i] >= '0' && str[i] <= '9') {
flag = 1;
start = i;
if (str[i] == '0') flaa = 1;
} else if (str[i] >= 'a' && str[i] <= 'z') {
flag = 2;
}
}
}
if (num != 0) {
printf("\n");
}
for (int i = 1; i <= tot; i ++) {
printf("%d\n", ans[i]);
}
return 0;
}
最后很惊险的拿了亚洲区预赛北京站的铜牌。。虽然今年很遗憾,但也算满足了。哪里跌倒哪里爬起,以后的日子继续加油吧~