zoukankan      html  css  js  c++  java
  • [Atcoder Code Festival 2017 Qual B Problem F]Largest Smallest Cyclic Shift

    题目大意:
    给你(A)个a,(B)个b,(C)个c,要你构造一个字符串,使它的最小循环表示法最大。求这个表示法。
    解题思路:
    不知道怎么证,但把a、b、c当做单独的字符串扔进容器,每次把字典序最小的和字典序最大的两个字符串合并就是答案。
    容器用multiset即可。

    C++ Code:

    #include<cstdio>
    #include<set>
    #include<string>
    using namespace std;
    multiset<string>s;
    int main(){
    	int aa,bb,cc,p=0;
    	scanf("%d%d%d",&aa,&bb,&cc);
    	p=aa+bb+cc;
    	for(;aa--;)s.insert("a");
    	for(;bb--;)s.insert("b");
    	while(cc--)s.insert("c");
    	while(--p){
    		auto st=(*s.begin())+*(--s.end());
    		s.erase(s.begin());
    		s.erase(--s.end());
    		s.insert(st);
    	}
    	puts((*s.begin()).c_str());
    	return 0;
    }
    
  • 相关阅读:
    ADO.NET调用存储过程
    存储过程
    web Servise(服务)
    ADO.NET连接池
    ADO.NET
    常用语法2
    常用语法
    修改pip源为国内网站
    模块
    random模块
  • 原文地址:https://www.cnblogs.com/Mrsrz/p/9269905.html
Copyright © 2011-2022 走看看