补几道
A. 清楚姐姐学信息论
题面
非常有意思的一道题,乍一看肯定是低进制效率高,但被WA教训之后开始冷静思考
分别能表示的数的个数为
现在就是比较这两个数的大小
因为
即比较
即比较
同构,构造函数
所以
AC代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
::sync_with_stdio(false);
ios,y;
ll x>>x>>y;
cinif(x==3||y==3)
<<3<<'\n';
coutelse
<<min(x,y)<<'\n';
coutreturn 0;
}
B. 清楚姐姐学构造
题面
由题意可知:
所以
如果
如果
AC代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+5;
[N];
ll cvoid Exgcd(ll a,ll b,ll &x,ll &y){
if(!b) x=1,y=0;
else Exgcd(b,a%b,y,x),y-=a/b*x;
}
int inverse(ll a,ll p){
, y;
ll x(a,p,x,y);
Exgcd =(x%p+p)%p;
xreturn x;
}
int main() {
::sync_with_stdio(false);
ios,m;
ll n>>n>>m;
cinfor(int i=1;i<=n;i++)
>>c[i];
cinif(m==2)
{
bool flag=false;
for(int i=1,j=n;i<=j;i++,j--)
{
if((c[i]+c[j])%2!=0)
{
=true;
flagbreak;
}
}
if(flag)
<<"No"<<'\n';
coutelse
{
<<"Yes"<<'\n';
coutfor(int i=1;i<=n;i++)
<<c[i]<<' ';
cout<<'\n';
coutfor(int i=1;i<=n;i++)
<<0<<' ';
cout<<'\n';
cout}
}
else
{
<<"Yes"<<'\n';
cout=inverse(2,m);
ll sfor(int i=1;i<=n;i++)
<<(c[i]+c[n+1-i])%m*s%m<<' ';
cout<<'\n';
coutfor(int i=1;i<=n;i++)
<<(c[i]-c[n+1-i]+m)%m*s%m<<' ';
cout<<'\n';
cout}
return 0;
}
E. 清楚姐姐打怪升级
题面
模拟一下就行
AC代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+5;
int h[N],v[N];
(ll x,ll y)
ll ceil{
if(x%y==0)
return x/y;
return x/y+1;
}
int main() {
::sync_with_stdio(false);
iosint n,t,a;
>>n>>t>>a;
cinbool flag=false;
for(int i=1;i<=n;i++)
{
>>h[i]>>v[i];
cinif(v[i]*t>=a&&h[i]>a)
=true;
flag}
if(flag)
<<-1<<'\n';
coutelse
{
=0;
ll cntfor(int i=1;i<=n;i++)
{
if(h[i]>=a&&v[i]*t<a)
+=ceil(h[i]-a,a-v[i]*t)+1;
cntelse
++;
cnt}
<<1+(cnt-1)*t<<'\n';
cout}
return 0;
}
L. 清楚姐姐的三角形I
题面
直接能算出来,判断一下就行
AC代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
[3];
ll v[3];
ll lint main() {
::sync_with_stdio(false);
iosint T;
>>T;
cinwhile(T--)
{
=0;
ll sumfor(int i=0;i<3;i++)
{
>>v[i];
cin+=v[i];
sum}
if(sum%2!=0)
<<"No"<<'\n';
coutelse
{
/=2;
sumfor(int i=0;i<3;i++)
[i]=sum-v[i];
l(l,l+3);
sortif(l[0]+l[1]>l[2])
{
<<"Yes"<<'\n';
coutfor(int i=0;i<3;i++)
<<sum-v[i]<<' ';
cout<<'\n';
cout}
else
<<"No"<<'\n';
cout}
}
return 0;
}
M. 清楚姐姐的三角形II
题面
显然有循环,构造 1,2,4,1,2,4,...这样就行
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
::sync_with_stdio(false);
iosint v[3]={1,2,4};
int n;
>>n;
cinfor(int i=1;i<=n;i++)
<<v[(i-1)%3]<<' ';
cout<<'\n';
coutreturn 0;
}