赛后总结:
T:今天比赛彭彭和金姐又来晚了。╭(╯^╰)╮然后我从最后开始看,最后一题又是熟悉的序列交换成有序数列,然后套一下我们的模板,然后就拿到首A了。接着跟榜看A题,花了几分钟搞一搞,然后因为爆int挖了一发,痛苦,以后要仔细看数据范围啊。然后金姐和彭彭看了E题做出来了,然后金姐看H题,听隔壁队伍口胡了快半小时。。。笑死我了。然后比他们先做出来了。最后我在看B题,组合数学题,不知道怎么处理大数阶乘,用java搞出来解,但是因为复杂度的问题,wa了,最后金姐和彭彭莫名其妙搞出了G题。太强了啊。如果会做更多组合数学题就好了呜呜。
P:E题是一道水题,然而打的时候还是不必要的WA了一次(傻的判断条件写错了。。还自己没找到,金姐看到的)。G题首先的想法以为只会有两种不同的数字,然而思路是错的,被金姐推翻。后来。。就跟这道题杠上了,然后突发奇想,逆向思维向上推,受金姐启发,在思路不完全清晰的情况下,找到了能够应征大家之前所有例子的正确解,然后金姐就打了,就A了之后都还不是特别明白为什么。直到结束,问了隔壁队。
J:H题也是一道水题,但是刚开始样例没看懂,结果听隔壁队口胡,突然就看懂了,但是后来想复杂了,想到万一水不够木块浮起来怎么办,把隔壁队也给带歪了,最后看到A了那么多人,应该没那么复杂,就A了
题解:
A - A Count Task
简单字符串题
#include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #include<cmath> #include<queue> #include<set> #include<string> #include<vector> #include<ctime> #include<map> #include<unordered_map> #include<time.h> #include<random> #include<stack> #include<cstdlib> using namespace std; typedef long long ll; #define mm(a,b) memset(a,b,sizeof(a)) const int maxn = 1e6 + 50; #define MAXN 1100 #define mod 100000007 const double eps = 1e-5; int main() { int T; scanf("%d", &T); while (T--) { string a; cin >> a; ll ans = 0; for (int i = 0; i < a.length(); ) { ll count = 1; char now = a[i]; for (int j = i + 1; j < a.length(); j++) { if (a[j] == now) count++; else break; } i += count; //if (count > 1) { ans += ((count + 1)*count) / 2; } } printf("%lld\n", ans); } return 0; }
E - A Hard Allocation
题解:最优的解法是将蛋糕均分给大家,直到没有蛋糕,如果蛋糕是人数的倍数就是差值为0,否则差值为1
1 #include<iostream> 2 #include<algorithm> 3 #include<cstdio> 4 #include<cstring> 5 #include<cmath> 6 #include<queue> 7 #include<set> 8 #include<string> 9 #include<vector> 10 #include<ctime> 11 #include<map> 12 #include<unordered_map> 13 #include<time.h> 14 #include<random> 15 #include<stack> 16 #include<cstdlib> 17 using namespace std; 18 typedef long long ll; 19 #define mm(a,b) memset(a,b,sizeof(a)) 20 const int maxn = 1e6 + 50; 21 #define MAXN 1100 22 #define mod 100000007 23 const double eps = 1e-5; 24 int main() 25 { 26 int T; 27 scanf("%d", &T); 28 while (T--) 29 { 30 int n, m; 31 scanf("%d %d", &n, &m); 32 if (n%m==0) 33 printf("0\n"); 34 else 35 printf("1\n"); 36 } 37 return 0; 38 }