按题意模拟即可
#include<bits/stdc++.h>
#define x first
#define y second
#define PB push_back
#define mst(x,a) memset(x,a,sizeof(x))
#define all(a) begin(a),end(a)
#define rep(x,l,u) for(ll x=l;x<u;x++)
#define rrep(x,l,u) for(ll x=l;x>=u;x--)
#define sz(x) x.size()
#define IOS ios::sync_with_stdio(false);cin.tie(0);
using namespace std;
typedef unsigned long long ull;
typedef pair<int,int> PII;
typedef pair<char,char> PCC;
typedef long long ll;
typedef pair<ll,ll> PLL;
const int N=3*1e5+10;
const int M=1e6+10;
const int INF=0x3f3f3f3f;
const int MOD=1e9+7;
void solve(){
int x;cin>>x;
string s=to_string(x);
int u=s[0]-'0',v=sz(s),ans=0;
rep(i,0,u-1) ans+=10;
if(v==4) ans+=10;
else if(v==3) ans+=6;
else if(v==2) ans+=3;
else ans++;
cout<<ans<<endl;
}
int main(){
IOS;
//freopen("test.txt", "r", stdin);
//freopen("test.txt", "w", stdout);
int t;cin>>t;
while(t--)
solve();
return 0;
}
找到起始1的位置和结尾1的位置,统计[st,ed]间0的位置即可
#include<bits/stdc++.h>
#define x first
#define y second
#define PB push_back
#define mst(x,a) memset(x,a,sizeof(x))
#define all(a) begin(a),end(a)
#define rep(x,l,u) for(ll x=l;x<u;x++)
#define rrep(x,l,u) for(ll x=l;x>=u;x--)
#define sz(x) x.size()
#define IOS ios::sync_with_stdio(false);cin.tie(0);
using namespace std;
typedef unsigned long long ull;
typedef pair<int,int> PII;
typedef pair<char,char> PCC;
typedef long long ll;
typedef pair<ll,ll> PLL;
const int N=55;
const int M=1e6+10;
const int INF=0x3f3f3f3f;
const int MOD=1e9+7;
int a[N];
void solve(){
int n;cin>>n;
rep(i,1,n+1) cin>>a[i];
int st=0,ed=0;
rep(i,1,n+1){
if(!st && a[i]) st=i;
if(a[i]) ed=i;
}
int ans=0;
rep(i,st,ed+1) if(!a[i]) ans++;
cout<<ans<<endl;
}
int main(){
IOS;
//freopen("test.txt", "r", stdin);
//freopen("test.txt", "w", stdout);
int t;cin>>t;
while(t--)
solve();
return 0;
}
显然,如果最大值和最小值相同,则肯定不满足题意。否则,一定存在一个值mx,它的左右两边存在一个小于它的数。此时,该位置的鱼满足题意。
#include<bits/stdc++.h>
#define x first
#define y second
#define PB push_back
#define mst(x,a) memset(x,a,sizeof(x))
#define all(a) begin(a),end(a)
#define rep(x,l,u) for(ll x=l;x<u;x++)
#define rrep(x,l,u) for(ll x=l;x>=u;x--)
#define sz(x) x.size()
#define IOS ios::sync_with_stdio(false);cin.tie(0);
using namespace std;
typedef unsigned long long ull;
typedef pair<int,int> PII;
typedef pair<char,char> PCC;
typedef long long ll;
typedef pair<ll,ll> PLL;
const int N=3*1e5+10;
const int M=1e6+10;
const int INF=0x3f3f3f3f;
const int MOD=1e9+7;
int a[N];
void solve(){
int n;cin>>n;
int mx=-1,mn=INF;
rep(i,1,n+1){
cin>>a[i];
mx=max(mx,a[i]);
mn=min(mn,a[i]);
}
if(mx==mn) cout<<-1<<endl;
else{
a[0]=INF;
a[n+1]=INF;
rep(i,1,n+1){
if(a[i]==mx){
if(a[i]>a[i-1] ||a[i]>a[i+1]){
cout<<i<<endl;
return;
}
}
}
}
}
int main(){
IOS;
//freopen("test.txt", "r", stdin);
//freopen("test.txt", "w", stdout);
int t;cin>>t;
while(t--)
solve();
return 0;
}
显然,如果海盗的类别只有一种,则一定会发生冲突。否则,我们只需要在一个与该海盗类别不同的结点下连边即可。
#include<bits/stdc++.h>
#define x first
#define y second
#define PB push_back
#define mst(x,a) memset(x,a,sizeof(x))
#define all(a) begin(a),end(a)
#define rep(x,l,u) for(ll x=l;x<u;x++)
#define rrep(x,l,u) for(ll x=l;x>=u;x--)
#define sz(x) x.size()
#define IOS ios::sync_with_stdio(false);cin.tie(0);
using namespace std;
typedef unsigned long long ull;
typedef pair<int,int> PII;
typedef pair<char,char> PCC;
typedef long long ll;
typedef pair<ll,ll> PLL;
const int N=5005;
const int M=1e6+10;
const int INF=0x3f3f3f3f;
const int MOD=1e9+7;
int a[N];
bool st[N];
void solve(){
int n;cin>>n;
mst(st,false);
set<int> s;
rep(i,1,n+1) cin>>a[i],s.insert(a[i]);
bool flag=true;
if(sz(s)==1) flag=false;
if(!flag) cout<<"NO"<<endl;
else{
cout<<"YES"<<endl;
rep(i,1,n+1){
rep(j,1,n+1){
if(a[i]!=a[j] && !st[j]){
cout<<i<<' '<<j<<endl;
st[j]=true;
st[i]=true;
}
}
}
}
}
int main(){
IOS;
//freopen("test.txt", "r", stdin);
//freopen("test.txt", "w", stdout);
int t;cin>>t;
while(t--)
solve();
return 0;
}
简单的组合问题。第一个坑位有n种选法,第二个坑位有n-1种选法...最后一个坑位有1种选法,故总共选法为n!,再去掉重复得选法,得到公式n!/n/n/2
#include<bits/stdc++.h>
#define x first
#define y second
#define PB push_back
#define mst(x,a) memset(x,a,sizeof(x))
#define all(a) begin(a),end(a)
#define rep(x,l,u) for(ll x=l;x<u;x++)
#define rrep(x,l,u) for(ll x=l;x>=u;x--)
#define sz(x) x.size()
#define IOS ios::sync_with_stdio(false);cin.tie(0);
using namespace std;
typedef unsigned long long ull;
typedef pair<int,int> PII;
typedef pair<char,char> PCC;
typedef long long ll;
typedef pair<ll,ll> PLL;
const int N=3*1e5+10;
const int M=1e6+10;
const int INF=0x3f3f3f3f;
const int MOD=1e9+7;
void solve(){
ll n;cin>>n;
ll ans=1;
rep(i,1,n+1) ans*=i;
cout<<ans/(n*n/2)<<endl;
}
int main(){
IOS;
//freopen("test.txt", "r", stdin);
//freopen("test.txt", "w", stdout);
//int t;cin>>t;
//while(t--)
solve();
return 0;
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。