【Educational Codeforces Round 36 C】 Permute Digits
【链接】 我是链接,点我呀:)
【题意】
在这里输入题意
【题解】
//从大到小枚举第i(1..len1)位
//剩余的数字从小到大排序。
//看看组成的数字是不是小于等于b
//如果是的话。
//说明第i位就是选这个数字了。
//接下来枚举下一位。
【代码】
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 20;
string s1,s2;
int len1,len2;
int bo[N],a[N],b[N];
vector<int> v,vans;
bool get_ans(){
for (int i = 0;i <(int) vans.size();i++)
v[i+1] = vans[i];
int nn = (int) vans.size();
for (int i = 0;i<=9;i++)
for (int j = 1;j <= bo[i];j++)
v[++nn] = i;
for (int i = 1;i <= len1;i++)
if (v[i]!=b[i] && v[i]>b[i]) return false;
else if (v[i]!=b[i] && v[i]<b[i])return true;
return true;
}
int main(){
#ifdef LOCAL_DEFINE
freopen("rush_in.txt", "r", stdin);
#endif
ios::sync_with_stdio(0),cin.tie(0);
cin >> s1 >> s2;
len1 = s1.size(),len2 = s2.size();
if (len1<len2){
sort(s1.begin(),s1.end());
reverse(s1.begin(),s1.end());
cout <<s1<<endl;
return 0;
}
v.resize(len1+1);
//len1==len2;
for (int i = 0;i < len1;i++)
a[i+1] = s1[i]-'0';
for (int i = 0;i < len2;i++)
b[i+1] = s2[i]-'0';
for (int i = 1;i <= len1;i++) bo[a[i]]++;
bool haved = 0;
for (int i = 0;i < len1;i++){
for (int j = 9;j>=0;j--)
if (bo[j]){
int k = s2[i]-'0';
if (j<=k || haved){
bo[j]--;
vans.push_back(j);
if (get_ans()){
if (j<k) haved =1;
break;
}
vans.pop_back();
bo[j]++;
}
}
}
for (int i = 0; i< (int) vans.size();i++)
cout <<vans[i];
//从大到小枚举第i(1..len1)位
//剩余的数字从小到大排序。
//看看组成的数字是不是小于等于b
//如果是的话。
//说明第i位就是选这个数字了。
//接下来枚举下一位。
return 0;
}
【Educational Codeforces Round 36 C】 Permute Digits的更多相关文章
- 【Educational Codeforces Round 36 D】 Almost Acyclic Graph
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 找到任意一个环. 然后枚举删掉其中的某一条边即可. (因为肯定要删掉这个环的,那么方法自然就是删掉其中的某一条边 (其它环,如果都包 ...
- 【Educational Codeforces Round 36 B】Browser
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 分类在区间里面和左边.右边三种情况. 看看l的左边有没有标签.r的右边有没有标签. 就能做完了. [代码] #include < ...
- 【Educational Codeforces Round 36 A】 Garden
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 枚举用哪一个桶就好 [代码] #include <bits/stdc++.h> using namespace std; ...
- 【Educational Codeforces Round 37 F】SUM and REPLACE
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 那个D函数它的下降速度是很快的. 也就是说到最后他会很快的变成2或者1 而D(2)==2,D(1)=1 也就是说,几次操作过后很多数 ...
- 【Educational Codeforces Round 37 E】Connected Components?
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] bfs. 用一个链表来记录哪些点已经确定在某一个联通快里了. 一开始每个点都能用. 然后从第一个点开始进行bfs. 然后对于它的所有 ...
- 【Educational Codeforces Round 37 C】 Swap Adjacent Elements
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 显然l..r这一段连续的1可以把l..r+1变成有序的. 那么就把所有的连续1段变成有序的就好. 看看最后是不是升序即可. [代码] ...
- 【Educational Codeforces Round 37 B】 Tea Queue
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 用一个队列来模拟排队就好. 队列放三元组(x,y,z) x表示人的下标,y和z分别表示进入和退出时间. 然后枚举时间从1到5000 ...
- 【Educational Codeforces Round 37 A】 Water The Garden
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 记录下水龙头在哪些位置. 然后每秒钟把index-i和index+i改变状态一下就好(置1 [代码] #include <bi ...
- 【Educational Codeforces Round 35 D】Inversion Counting
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 排列中交换任意两个数字. 排列的逆序对个数的奇偶性会发生变化. 翻转这个过程其实就是len/2对数字发生交换. 交换了偶数次的话,不 ...
随机推荐
- Python组织文件 实践:查找大文件、 用Mb、kb显示文件尺寸 、计算程序运行时间
这个小程序很简单原本没有记录下来的必要,但在编写过程中又让我学到了一些新的知识,并且遇到了一些不能解决的问题,然后,然后就很有必要记录一下. 这个程序的关键是获取文件大小,本来用 os.path.ge ...
- Unity 实现Log实时输出到屏幕或控制台上<二>
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/49884507 作者:car ...
- 【Codeforces Round #420 (Div. 2) B】Okabe and Banana Trees
[题目链接]:http://codeforces.com/contest/821/problem/B [题意] 当(x,y)这个坐标中,x和y都为整数的时候; 这个坐标上会有x+y根香蕉; 然后给你一 ...
- Hadoop学习总结(1)——大数据以及Hadoop相关概念介绍
一.大数据的基本概念 1.1.什么是大数据 大数据指的就是要处理的数据是TB级别以上的数据.大数据是以TB级别起步的.在计算机当中,存放到硬盘上面的文件都会占用一定的存储空间,例如: 文件占用的存储空 ...
- HttpService解析
HttpServlet容器响应Web客户请求流程如下: 1)Web客户向Servlet容器发出Http请求: 2)Servlet容器解析Web客户的Http请求: 3)Servlet容器创建一个Htt ...
- UITextView自己定义键盘和系统键盘
UITextView有inputView 和 inputAccessoryView 两个属性,都指定了对应的视图. inputAccessoryView 对象显示在 inputView 对象的上面.与 ...
- 使用JEECG心得
使用JEECG心得 我就不做JEECG的介绍了,提供一个网址.能够更加清晰的了解JEECG文档. http://www.jeecg.org/book/jeecg_v3.html 用JEECG已经几乎相 ...
- HDU 4572 Bottles Arrangement
具体的证明:点击打开链接 我的想法: 要想保证题目所说 构造最小行的和,仅仅能是这样的情况 ..... m-3 m-2 m-1 m | m m-1 m-2 m-3 ...
- 一张图了解javaJwt
1.什么是javaJwt? JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims ...
- mysql 查看单个表每个索引的大小
/*单个表每个索引的大小*/ SELECT sum(stat_value) pages, table_name part, index_name, concat(,),'M',' rows') * @ ...