比赛 NOIP模拟赛1 评测结果 WAWWWWWWWW
题目名称 叉叉 最终得分 10
用户昵称 Ays 运行时间 0.104 s
代码语言 C++ 内存使用 10.67 MiB
提交时间 2018-02-08 21:00:33
显示代码纯文本
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. char s[100005];
  4. int len,tot;
  5. int q[100005][30],cnt;
  6. queue<int> ss[36];
  7. void find(){
  8. for(int i=0;i<26;i++){
  9. while(ss[i].size()){
  10. int fr=ss[i].front();ss[i].pop();
  11. int to=ss[i].front();ss[i].pop();
  12. for(int ii=0;ii<26;ii++){
  13. if(i==ii) continue;
  14. int p=q[to][ii]-q[fr][ii];
  15. if(p%2) tot++;
  16. }
  17. }
  18. }
  19. }
  20.  
  21. void init(){
  22. for(int i=0;i<len;i++){
  23. int c=s[i]-'a';
  24. q[i][c]++;
  25. ss[c].push(i);
  26. if(i!=0) for(int d=0;d<26;d++) q[i][d]+=q[i-1][d];
  27. }
  28. }
  29.  
  30.  
  31. int main(){
  32. freopen("xxxx.in","r",stdin);
  33. freopen("xxxx.out","w",stdout);
  34. scanf("%s",s);len=strlen(s);
  35. init();
  36. find();
  37. printf("%d",tot/2);
  38. return 0;
  39. }