A.Dreamoon and Ranking Collection
题意:
题解:
AC代码
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define mp make_pair
#define all(x) (x).begin(),(x).end()
#define endl '\n'
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
//const int mod=1e9+7;
const int mod=998244353;
const double eps = 1e-10;
const double pi=acos(-1.0);
const int maxn=2e5+10;
const ll inf=0x3f3f3f3f;
const int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
int a[210],b[210];
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
int t;
cin>>t;
while(t--){
int n,x,ans=0;
cin>>n>>x;
memset(b,0,sizeof b);
for(int i=1;i<=n;i++)cin>>a[i],b[a[i]]=1;
for(int i=1;i<=200;i++){
if(!b[i]&&!x)break;
if(!b[i])x--;
ans=i;
}
cout<<ans<<endl;
}
}
B.Dreamoon Likes Permutations
题意:
题解:
AC代码
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define mp make_pair
#define all(x) (x).begin(),(x).end()
#define endl '\n'
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
//const int mod=1e9+7;
const int mod=998244353;
const double eps = 1e-10;
const double pi=acos(-1.0);
const int maxn=2e5+10;
const ll inf=0x3f3f3f3f;
const int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
int a[maxn];
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
int t;
cin>>t;
while(t--){
int n;
vector<int> ans;
map<int,int> m1,m2;
cin>>n;
int num=0;
ll pre=0,sum=0;
for(int i=1;i<=n;i++) cin>>a[i],sum+=a[i],m2[a[i]]++;
for(ll i=1;i<n;i++){
pre+=a[i];
m1[a[i]]++;
if(m1[a[i]]>1) break;
m2[a[i]]--;
if(m2[a[i]]==0) m2.erase(a[i]);
if(m1.size()+m2.size()==n&&pre==(1+i)*i/2&&(sum-pre)==(1+n-i)*(n-i)/2) ans.pb(i),num++;
}
cout<<ans.size()<<endl;
for(auto i:ans){
cout<<i<<' '<<n-i<<endl;
}
}
}
C.Dreamoon Likes Coloring
题意:
题解:
AC代码
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define mp make_pair
#define all(x) (x).begin(),(x).end()
#define endl '\n'
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
//const int mod=1e9+7;
const int mod=998244353;
const double eps = 1e-10;
const double pi=acos(-1.0);
const int maxn=2e5+10;
const ll inf=0x3f3f3f3f;
const int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
ll l[maxn],sum[maxn],ans[maxn];
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
int n,m;
cin>>n>>m;
for(int i=1;i<=m;i++)cin>>l[i];
for(int i=m;i;--i)
sum[i]=sum[i+1]+l[i];
if(sum[1]<n){cout<<-1;return 0;}
ans[1]=1;
for(int i=2;i<=m;++i)
ans[i]=max(ans[i-1]+1,n-sum[i]+1);
for(int i=1;i<=m;++i)if(ans[i]+l[i]-1>n){cout<<-1;return 0;}
for(int i=1;i<=m;++i)
cout<<ans[i]<<' ';
return 0;
}
D.Dreamoon Likes Sequences
题意:
题解:
AC代码
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define mp make_pair
#define all(x) (x).begin(),(x).end()
#define endl '\n'
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
//const int mod=1e9+7;
const int mod=998244353;
const double eps = 1e-10;
const double pi=acos(-1.0);
const int maxn=2e5+10;
const ll inf=0x3f3f3f3f;
const int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
int t;
cin>>t;
while(t--){
ll d,m;
cin>>d>>m;
ll ans=0;
for(int i=0;(1ll<<i)<=d;i++){
int s=0;
if((1ll<<(i+1))<=d)s=1<<i;
else s=d-(1<<i)+1;
ans=(ans+s*ans%m+s)%m;
}
cout<<ans<<endl;
}
return 0;
}