补题,一年之后还是不会做😭
A. 中奖
题面
AC代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e3+5;
struct p
{
int a,b,c;
}s[N];
bool cmp(p a,p b)
{
if(a.c>b.c)
return true;
else if(a.c<b.c)
return false;
else
{
if(a.a<b.a)
return true;
else if(a.a>b.a)
return false;
else
return a.b<b.b;
}
}
int main() {
::sync_with_stdio(false);
iosint n,m;
>>n>>m;
cinfor(int i=1;i<=n;i++)
>>s[i].a>>s[i].b>>s[i].c;
cin(s+1,s+1+n,cmp);
sortfor(int i=1;i<=m;i++)
<<s[i].a<<' '<<s[i].b<<' '<<s[i].c<<'\n';
coutreturn 0;
}
B. 构造一个简单的数列
题面
AC代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5;
bool vis[N];
int main() {
::sync_with_stdio(false);
iosint T;
>>T;
cinwhile(T--)
{
int a,n;
>>a>>n;
cinif(a==1)
<<n<<'\n';
coutelse if(n==1)
<<a<<'\n';
coutelse
{
if(a>=n)
<<n-1<<'\n';
coutelse
{
if(a%2==0)
<<n<<'\n';
coutelse
{
(vis,false,sizeof(vis));
memsetfor(int i=1;i<=a;i++)
[i]=true;
visint last=a-1;
int b=a;
while(b<n)
{
for(int i=last+2;i<=b;i++)
[i]=true;
vis=b-1;
lastfor(int i=last+1;i<1e6+5;i++)
{
if(!vis[i]&&__gcd(i,last)==1)
{
=i;
bbreak;
}
}
}
if(n==last+2)
<<b<<'\n';
coutelse
<<n-1<<'\n';
cout}
}
}
}
return 0;
}
E. 排列计数
题面
AC代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod=1e9+7;
int main() {
::sync_with_stdio(false);
ios;
ll n>>n;
cinif(n==1)
<<1<<'\n';
coutelse
{
=1;
ll ansfor(int i=3;i<=2*n;i++)
=(ans*i)%mod;
ans<<ans<<'\n';
cout}
return 0;
}
H. 拼接的字符串
题面
AC代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
::sync_with_stdio(false);
ios,s2;
string s1>>s1>>s2;
cinint len=s1.length();
int i=0,j=len-1;
for(i=0;i<len;i++)
{
if(s1[i]!=s2[i])
break;
}
for(j=0;j<len;j++)
{
if(s1[len-1-j]!=s2[s2.length()-1-j])
break;
}
if(i+j>=len)
<<"YES"<<'\n';
coutelse
<<"NO"<<'\n';
coutreturn 0;
}
I. 没有字母的数
题面
AC代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
bool is_alpha(int x)
{
while(x)
{
if(x%16>=10)
return false;
/=16;
x}
return true;
}
const int N=1e6+5;
int sum[N];
void init()
{
for(int i=1;i<N;i++)
[i]=sum[i-1]+is_alpha(i);
sum}
int main() {
::sync_with_stdio(false);
iosint T;
>>T;
cin();
initwhile(T--)
{
int l,r;
>>l>>r;
cin<<sum[r]-sum[l-1]<<'\n';
cout}
return 0;
}