#include<bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
int k,n;
void solve() {
cin>>k>>n;
while(k--){
int cnt=0;
for(int i=1;i<=n;i++){
int x;
cin>>x;
if(x==1) cnt++;
}
// cout<<cnt<<endl;
cout<<abs(cnt-(n-cnt))<<endl;
}
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t=1;
// cin>>t;
while(t--) {
solve();
}
return 0;
}
bi必须在[1,n]
然后,对于相同的ai,对应的bi必须相同
满足则YES,否则NO
#include<bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
const int N=1e5+10;
int a[N],b[N];
int n;
void solve() {
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++) cin>>b[i];
map<int,int>mp;
for(int i=1;i<=n;i++){
if(b[i]<1||b[i]>n){
cout<<"No"<<endl;
return;
}
if(!mp[a[i]]) mp[a[i]]=b[i];
else{
if(b[i]!=mp[a[i]]){
cout<<"No"<<endl;
return;
}
}
}
cout<<"Yes"<<endl;
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t=1;
cin>>t;
while(t--) {
solve();
}
return 0;
}
数据非常之大,猜测找规律
发现x和y均小于等于2时,答案为1
当其中一个为2时,答案为2
当x和y均为3时,答案为8
其它情况,整个棋盘均可以走遍,答案为n*m
#include<bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
int n,m;
void solve() {
cin>>n>>m;
if(n==1) cout<<1<<endl;
else if(n==2) cout<<(m-1)/2+1<<endl;
else if(n==3){
if(m==1) cout<<1<<endl;
else if(m==2) cout<<2<<endl;
else if(m==3) cout<<8<<endl;
else cout<<n*m<<endl;
}
else {
if(m==1) cout<<1<<endl;
else if(m==2) cout<<(n-1)/2+1<<endl;
else cout<<n*m<<endl;
}
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t=1;
cin>>t;
while(t--) {
solve();
}
return 0;
}