AtCoder Regular Contest 098
AtCoder Regular Contest 098 C - Attention 题意:有n个人站成一排,每个人可能面向东或西。 现在要选一个人,让其他人转向所选的那个人。求最小转向次数。 分析:模拟即可。 代码: #include <cstdio> #include <cstring> #include <algorithm> #include <cstdlib> #include <map> using namespace std; typedef long long ll; #define GG puts("FUCK") #define N 300050 char str[N]; int n,sum; int main() { scanf("%d%s",&n,str+1); int i; for(i=1;i<=n;i++) { if(str[i]=='E') sum++; } int now=0,ans=1<<30; for(i=1;i<=n;i++) { if(str[i]=='E') sum--; ans=min(ans,now+sum); if(str[i]=='W') now++; } printf("%d\n",ans); } D - Xor Sum 2 题意:给你一个长度为n的序列,求合法连续子序列个数,合法定义为和等于他们异或起来。 分析