zhangas

Pay more attention

0%

CF836div2

CF836div2

T2:给定数字n 构造数列a1…an s.t.
a1^a2^…^an=(a1+a2+…+an)/n &&(ai>=1)
intput:
3
1
4
3
output:
69
13 2 8 1
7 7 7

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
性质 a为偶数的时候a^1==a+1 a为奇数的时候 a^1==a-1
a^a=0 0^a=a
so: 当n为奇数的时候 n个1满足条件 1^1^1==1 (1+1+1)/3=1成立
当n为偶数的时候 1^3==2 (1+3)/2==2 只需让其余的全为2即可
void solve(){
int t=read();while(t--){
int n=read();
if(t%2){
for(int i=0;i<n;i++){
cout<<"1 ";
}
}
else{
cout<<"1 3 ";
for(int i=0;i<n-2;i++){
cout<<"2 ";
}
}
puts("");
}
}

T4 构造严格递增数列满足 max(a1,a2,a3…an)-min(a1,a2,a3…an)=√a1+a2+…+an

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
假定每个数为4n 那么 a1+a2+...+an==4n^2 √a1+a2+...+an==2n
设最大值为x最小值为y x+y=8n x-y=2n -> x=5n y=3n
如果输入的n是奇数 中间的数为4n 向左为4n-1 4n-2... 向右为4n+1 4n+2...
void solve(){
int t=read();while(t--){
int n=read();
cout<<3*n<<" ";
int t=4*n-n/2+1;
for(int i=0;i<n/2-1;i++){
cout<<t<<" ";
t++;
}
if(n%2)cout<<4*n<<" ";
t=4n+1;
for(int i=0;i<n/2-1;i++){
cout<<t<<" ";
t++;
}
cout<<5*n;
puts("");
}
}

ABC279

T3 给定两个大小相同A B字符矩阵 问A矩阵可以通过列的交换化成B矩阵吗? 可以的话输出Yes 否则输出No

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
将A字符矩阵的每一个列向量存入map中 接着讲B字符矩阵从map中减去
const int N=4e5;
mp<vector<char>,int>mp;
string s[N];
int main(){
int h=read(),w=read();
for(int i=0;i<h;i++){
cin>>s[i];
}
for(int j=0;j<w;j++){
vector<char>v;
for(int i=0;i<h;i++){
v.push_back(s[i][j]);
}
mp[v]++;
}
for(int i=0;i<h;i++){
cin>>s[i];
}
for(int j=0;j<w;j++){
vector<char>v;
for(int i=0;i<h;i++){
v.push_back(s[i][j]);
}
mp[v]--;
}
//检查是否合法
for(auto i:mp){
if(i.second){//不为0
puts("No");
return 0;
}
}
puts("Yes");
return 0;
}