A. 就是找y 在上面并且相等的情况ifelse
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
const int INF=0x3f3f3f3f;
const int N=2e5+10,M=1e6+10;
int a[N],mp[M]={0};
void solve(){
int x1,x2,x3,y1,y2,y3;int ans=0;
cin>>x1>>y1>>x2>>y2>>x3>>y3;
if(y1==y2){
if(y1>y3){
ans=abs(x1-x2);
}
}
else if(y1==y3){
if(y1>y2){
ans=abs(x1-x3);
}
}
else if(y2==y3){
if(y2>y1){
ans=abs(x2-x3);
}
}
cout<<ans<<'\n';
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
int t;cin>>t;
//int t=1;
while(t--){
solve();
}
}
B. 最少有k 种 最多有n 种
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
const int INF=0x3f3f3f3f;
const int N=2e5+10,M=1e6+10;
int a[N],mp[M]={0};
void solve(){
int n;cin>>n;set<int> s;
for(int i=1;i<=n;i++){
int x;cin>>x;
s.insert(x);
}
int m=s.size();
for(int i=1;i<=n;i++){
cout<<max(i,m)<<" ";
}
cout<<"\n";
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
int t;cin>>t;
//int t=1;
while(t--){
solve();
}
}
C.遍历一遍即可
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
const int INF=0x3f3f3f3f;
const int N=2e5+10,M=1e6+10;
int a[N],mp[M]={0};
void solve(){
int n,x;cin>>n>>x;map<int,int>mp;
for(int i=1;i<=n;i++){
int xx;cin>>xx;mp[xx]++;
}
int ans=0;
for(auto [val,num]:mp){
if(!mp.count(val*x)>0){
ans+=num;
}
else {
mp[val*x]-=num;
if(mp[val*x]<0){
ans-=mp[val*x];
mp.erase(mp.find(val*x));
}
}
}
cout<<ans<<endl;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
int t;cin>>t;
//int t=1;
while(t--){
solve();
}
}
附上TLE 便于理解
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
const int INF=0x3f3f3f3f;
const int N=2e5+10,M=1e6+10;
int a[N],mp[M]={0};
void solve(){
set<int> s;
int n,x;cin>>n>>x;int ans=0;fill(mp,mp+M,0);
for(int i=1;i<=n;i++){
cin>>a[i];
mp[a[i]]++;
s.insert(a[i]);
}
for(int i=1;i<=n;i++){
if(mp[a[i]]&&mp[a[i]*x]){
mp[a[i]]--;mp[a[i]*x]--;
}
}
for(auto x:s){
ans+=mp[x];
}
cout<<ans<<'\n';
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
int t;cin>>t;
//int t=1;
while(t--){
solve();
}
}