A. Phoenix and Balance
题目链接:https://codeforces.ml/contest/1348/problem/A
#include
#include
#include
#include
#include
#include
#define rush() int T;cin>>T;while(T--)
#define go(a) while(cin>>a)
#define ms(a,b) memset(a,b,sizeof a)
#define E 1e-8
using namespace std;
typedef long long ll;
const int idata=1e6+5;
const int inf=0x3f3f3f3f;
int n,m,t,_;
int i,j,k;
int cnt,num,ans;
int maxx=-1,minn=inf;
vectorv;
int a[idata];
int main()
{
cin.tie(0);
iostream::sync_with_stdio(false);
for(i=1;i<=30;i++){
a[i]=(1<>n;
for(i=1;i<=n;i++){
if(i==n || i
B. Phoenix and Beauty
题目链接:https://codeforces.ml/contest/1348/problem/B
题目大意:任意k长度的子序列的和都相等
#include
#include
#include
#include
#include
#include
#include
C. Phoenix and Distribution
题目链接:https://codeforces.ml/problemset/problem/1348/C
题目大意:给出长度为n的字符串,分成k个字串,求k个子串当中字典序最大的那个字串的最小值
#include
#include
#include
#include
#include
#include
#include
#define rush() int T;cin>>T;while(T--)
#define go(a) while(cin>>a)
#define ms(a,b) memset(a,b,sizeof a)
#define E 1e-8
using namespace std;
typedef long long ll;
const int idata=1e6+5;
const int inf=0x3f3f3f3f;
int n,m,t,_;
int i,j,k;
int cnt,num;
int maxx=-1,minn=inf;
vectorv;
string s,ans;
int main()
{
cin.tie(0);
iostream::sync_with_stdio(false);
rush()
{
bool judge=0;
cin>>n>>k;
cin>>s;
sort(s.begin(),s.end());
ans.clear();
if(s[0]==s[k-1]){
if(s[k]==s[n-1]){
num=(n-k)/k;
if((n-k)%k) num++;
ans=s[0]+s.substr(k,num);
}
else ans=s.substr(k-1,n-k+1);//(k-1)--(n-1)共(n-k+1)个字符
}
else{
ans=s[k-1];
}
cout<
D. Phoenix and Science
题目链接:https://codeforces.ml/problemset/problem/1348/D
题目大意:一开始有1个细菌。白天的时候每1个细菌可以分裂成2个,也可以不分裂,晚上的时候每1个细菌会增加mass 1,求最少要多少天能够到达所有mass的和恰好为n,并且给出对应n天每天有几个细菌要分裂。
#include
#include
#include
#include
#include
#include
#include
#define rush() int T;cin>>T;while(T--)
#define go(a) while(cin>>a)
#define ms(a,b) memset(a,b,sizeof a)
#define E 1e-8
using namespace std;
typedef long long ll;
const int idata=1e6+5;
const int inf=0x3f3f3f3f;
int n,m,t,_;
int i,j,k;
int cnt,num;
int maxx=-1,minn=inf;
vectorv;
int main()
{
/*cin.tie(0);
iostream::sync_with_stdio(false);*/
rush()
{
cin>>n;
v.clear();
for(i=1;i<=n;i<<=1){
v.push_back(i);//每天的细胞数量
n-=i;
}
if(n) v.push_back(n);
sort(v.begin(),v.end());
/*for(i=0;i