A. Escalator Conversations
推导即可,判断条件就是abs(h[i]-H)%k==0&&abs(h[i]-H)/k<m&&h[i]!=H,先要整除再能相隔abs(h[i]-H)/k个台阶谁高谁矮任意不影响,但是最后这个我就没注意到h[i]!=H小卡一会。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int n,m,k,H;
cin>>n>>m>>k>>H;
int h[n];
int cnt=0;
for(int i=0;i<n;i++)
{
cin>>h[i];
if(abs(h[i]-H)%k==0&&abs(h[i]-H)/k<m&&h[i]!=H)
{
cnt++;
}
}
cout<<cnt<<"\n";
}
return 0;
}
B. Parity Sort
这个题我承认我是shabi,de了贼久不知为什么啥都没插入,当然这也是我不熟练pushback的使用,初始化数组给空间了,pushback不初始化空间就行直接vector
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
int arr[n];
vector<int>ji,ou;
for(int i=0;i<n;i++)
{
cin>>arr[i];
if(arr[i]%2==0) ou.push_back(arr[i]);
else ji.push_back(arr[i]);
}
sort(ou.begin(),ou.end());
sort(ji.begin(),ji.end());
int cnt_ji=0,cnt_ou=0;
int final_arr[n];
for(int i=0;i<n;i++)
{
if(arr[i]%2==0)
{
final_arr[i]=ou[cnt_ou];
cnt_ou++;
}
else
{
final_arr[i]=ji[cnt_ji];
cnt_ji++;
}
}
int flag=0;
for(int i=1;i<n;i++)
{
if(final_arr[i]<final_arr[i-1])
{
flag=1;
break;
}
}
if(flag) cout<<"NO"<<"\n";
else cout<<"YES"<<"\n";
}
return 0;
}
标签:arr,int,888,Codeforces,cin,abs,ji,Div,ou
From: https://www.cnblogs.com/godcy/p/18037154