牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ
那个数大就那个赢,相等就是平局;
#include
using namespace std;
int main(){
int a,b;cin >>a>>b;
if(a>b) cout << "kou";
else if(a==b) cout <<"draw";
else cout << "yukari";
}
直接模拟即可 , 按照题目意思 ;
#include
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl '\n'
#define lowbit(x) (x&(-x))
#define sz(a) (int)a.size()
#define pb push_back
#define all(a) a.begin(), a.end()
#define int long long
typedef long long LL;
const int mod = 1e9+7;
const int N = 2e5+10;
using namespace std;
inline void solve(){
int n ; cin >> n;
string a,b;cin >>a>>b;
int t = 0 ;
for(int i=0;i> _;
while(_ --) solve();
return 0;
}
模拟题,先把"xiaohong"输出,然后把s中剩余字符输出 ;
#include
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl '\n'
#define lowbit(x) (x&(-x))
#define sz(a) (int)a.size()
#define pb push_back
#define all(a) a.begin(), a.end()
#define int long long
typedef long long LL;
const int mod = 1e9+7;
const int N = 2e5+10;
using namespace std;
int get(char c){
return (int)(c-'a');
}
inline void solve(){
string s ; cin >> s ;
cout << "xiaohong" ;
int cnt[26] = {0} ;
for(int i=0;i<26;i++){
cnt[i] = 0 ;
}
for(char c : s){
cnt[get(c)]++;
}
cnt[get('x')]--;
cnt[get('i')]--;
cnt[get('a')]--;
cnt[get('o')]-=2;
cnt[get('h')]--;
cnt[get('n')]--;
cnt[get('g')]--;
for(int i=0;i<26;i++){
int x = cnt[i];
if(x>0){
while(x--){
cout<<(char)(i+'a');
}
}
}
}
signed main()
{
IOS
int _ = 1;
// cin >> _;
while(_ --) solve();
return 0;
}
直接模拟,根据数列长度奇偶性 , 和 要删除的位置模拟 ;
( n 表示数组的长度 )
如果n为奇数 :
如果i在左半区,选中间和偏右的平均值作为中位数;
在中间,那选左边和右边两个数的平均值作为中位数
在右边,选中间和偏左的平均值作为中位数;
n为偶数,依次类推 ;
详情请看代码 ;
#include
#include
#include
#include
#include
#include
显而易见,先要做的就是分解质因数 ;
然后求出出现次数最多的数的次数(用ma表示,n表示质因数的总个数) ,如果ma > (n+1)/2的话,那么就不能够构造出相邻且不相等的序列了 ;
按照出现次数从大到小排序,对于构造序列,分奇偶位置存放质因数,由于奇数坐标个数总是大于偶数坐标个数(从1开始),那么可以先从奇数坐标开始放,然后放偶数坐标,先放大的,再放小的;
具体实现请看代码 ;
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
#include
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl '\n'
#define lowbit(x) (x&(-x))
#define sz(a) (int)a.size()
#define pb push_back
#define all(a) a.begin(), a.end()
#define int long long
typedef long long LL;
const int mod = 1e9+7;
const int N = 2e5+10;
using namespace std;
int max(int a ,int b){
return a > b ? a : b ;
}
bool cmp (const pair& a, const pair& b) {
return a.second > b.second; // 按照频率从大到小排序
}
inline void solve(){
int x ; cin >> x ;
if(x==1){
cout << -1 << endl;
return ;
}
map mp ;
int ma = 0 ;
int n = 0 ; // 质因数 个数
for (int i = 2; i <= x / i; i ++ )
if (x % i == 0){
int s = 0;
while (x % i == 0) x /= i, s ++ ;
mp[i] = s ;
ma = max(ma , mp[i]) ;
n += mp[i] ;
}
if (x > 1){
mp[x]++;
n ++ ;
}
ma = max(ma , mp[x]) ;
if(ma > (n+1)/2) {
cout << -1 << endl ;
return ;
}
vector> vc(mp.begin(),mp.end());
vector ans(n,0);
sort(vc.begin(),vc.end(),cmp);//将次数从大到小排序
int idx = 0 ; // 先奇数
for(int i=0;i= n) idx = 1 ;
}
}
cout << n << endl;
for(int i=0;i> _;
while(_ --) solve();
return 0;
}
博弈题