A
长度>5肯定不行,开5个变量记录这5个字母出现次数,若都为1则 YES
B
若遇到G则换成B , 比较两个串
C
用 map <string,int> 统计字符串出现次数,然后每行扫一遍记录答案
D
原来想的是从两端开始改,改成 RRRRLLLL 的形式
但题解还有另一种思路:记录每个字符改变的贡献,从大到小加
E
洛谷什么破翻译,看错了题,想着这不是直接做吗
但直接做复杂度为 O(n*q)
发现 hi,wi 很小 , 可以接受 O(h*w)
遂二维前缀和
维护(1,1)到(x,y)中,所有的hi⋅wi之和
F
读错题++
L 型只能是
\(*0\)
\(* *\)
\(0*\)
\(* *\)
\(**\)
\(*0\)
\(**\)
\(0*\)
这四种情况
形态很少,只要你有耐心,扫一遍即可
G
首先,题目是让我们构造一个序列,使他们的异或和为0
本来是想顺着填的,发现到4就重了
怎么办呢
log2e5 = 17.609640474
所以最后一个数最多最多填到 18
所以我们用 n-2 n-1 去造一个未出现过的数位 :我造的是 19 20
然后用 n 去封装
code
#include <bits/stdc++.h>
using namespace std;
int t,sum;
int main(){cin>>t;while(t--){int n;cin>>n;sum=0;for(int i=1;i<=n-3;i++){sum^=i;cout<<i<<" ";}sum^=(1<<19);sum^=(1<<20);cout<<(1<<19)<<" "<<(1<<20)<<" "<<sum<<endl;}return 0;
}
温馨小提示:千万不要做艾希自动机