冲鸭,去刷题:https://ac.nowcoder.com/acm/contest/625/C

小六喜欢两全其美的事情,今天就正好有一个这样的机会。

小六面前有两根管子,管子里面放满了数字为1到9的小球。每次取球时,小六会先选择一根管子,再从这根管子的某一侧(左侧或右侧)取出一个球。在满足取球规则的情况下,他可以任意顺序取出所有小球。假如小六依次取出的球的编号为a1,a2,⋯,ana1,a2,⋯,an,则他最后就得到了一个形如¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯a1a2⋯ana1a2⋯an¯样的十进制数。

小六希望他的取球顺序所组成的数是最大的,你可以帮一下他吗?

输入描述:

第一行输入数据组数。T (T≤14)T (T≤14)

接下来T行,每行输入两串只含1∼91∼9的数字,表示两根管子里的小球的数字。每根管子内至少含1个小球,且数量不超过40个。

输出描述:

对每一组数据,输出一行Case #x: A,其中x是数据组数编号(从1开始),A是小六能组成的最大的数。
示例1

输入

复制

2
123456 123456
9876346789 9854894589

输出

复制

Case #1: 665544332211
Case #2: 99998888776655498443

解题思路:

一:直接暴力模拟,每次取值都要同时从四个端点枚举(直到能判断那个端点最优),取最优端点的值最优。

二:其实上面的模拟过程抽象一下不就是把两个字符串取反后获得四个字符串,然后取字典序最大的那个吗......

AC code:

 #include <bits/stdc++.h>
#define INF 0x3f3f3f3f
#define LL long long
#define inc(i, j, k) for(int i = j; i <= k; i++)
#define rep(i, j, k) for(int i = j; i < k; i++)
#define mem(i, j) memset(i, j, sizeof(i))
#define gcd(i, j) __gcd(i, j)
using namespace std;
const int MAXN = 2e5+; string str, tp, a, b;
string ans, res; int main()
{
int T_case;
scanf("%d", &T_case);
inc(k, , T_case){
res = "";
cin >> str >> tp;
int L = , R = str.size()-, l = , r = tp.size()-;
while(L <= R || l <= r){
ans = "";
a = str;
b = tp;
reverse(a.begin(), a.end());
reverse(b.begin(), b.end()); // cout << L << " " << R << " " <<str << endl;
// cout << l << " " << r << " " << tp << endl;
// cout << "res: " << res << endl << endl; ans = max(ans, max(max(str, a), max(tp, b)));
// cout << ans << endl;
if(ans == str){
res+=str[L++];
// cout << "1: " << L-1 << " " << res << endl;
if(L > R) str = "";
else str = str.substr(L, (R-L+));
}
else if(ans == tp){
res+=tp[l++];
// cout << "2: " << l-1 << " " << res << endl;
if(l > r) tp = "";
else tp = tp.substr(l, (r-l+));
}
else if(ans == a){
res+=str[R--];
// cout << "3: " << R+1 << " " << res << endl;
if(L > R) str = "";
else str = str.substr(L, (R-L+));
}
else if(ans == b)
{
res+=tp[r--];
// cout << "4: " << r+1 << " " << res << endl;
if(l > r) tp = "";
else tp = tp.substr(l, (r-l+));
}
L = ;R = str.size()-;l = ; r = tp.size()-;
}
cout << "Case #" << k << ": " << res << endl;
}
return ;
}

C 六学家的困惑 【YY】 (2019年华南理工大学程序设计竞赛(春季赛))的更多相关文章

  1. 2019年华南理工大学程序设计竞赛(春季赛)-C-六学家的困惑

    题目链接:https://ac.nowcoder.com/acm/contest/625/C 题意:给定两个字符串,每次只能从两个字符串的两端取字符,求依次取字符后所构成的数字最大为多少. 思路:思路 ...

  2. 2019年华南理工大学程序设计竞赛(春季赛)-H-Parco_Love_GCD

    题目链接:https://ac.nowcoder.com/acm/contest/625/H 题意:给定n个数(<=1e9)的序列,其中n<=5e5,求该序列所有子序列的对应的gcd对1e ...

  3. A NB群友 【记忆化搜索】(2019年华南理工大学程序设计竞赛(春季赛))

    冲鸭!去刷题:https://ac.nowcoder.com/acm/contest/625/A 题目描述 CC是著名的算法竞赛选手,他不仅人长得帅,而且技术了得,自然而然就有了许多粉丝. 为了能帮助 ...

  4. 2019年华南理工大学程序设计竞赛(春季赛) B 修仙时在做什么?有没有空?可以来炼丹吗?(思维建图搜索)

    https://ac.nowcoder.com/acm/contest/625/B 分析: 全部的状态只有1<<18 个 , 所以我们可以预处理 f[u][j] , 然后建立出全部的u可以 ...

  5. 2019年华南理工大学程序设计竞赛(春季赛) K Parco_Love_String(后缀自动机)找两个串的相同字串有多少

    https://ac.nowcoder.com/acm/contest/625/K 题意: 给出Q 个询问 i , 求 s[0..i-1] 与 s[i...len-1] 有多少相同的字串 分析: 给出 ...

  6. 2019年华南理工大学程序设计竞赛(春季赛)A NB群友

    https://ac.nowcoder.com/acm/contest/625/A 题意:给出一个区间范围 , 求有多少个数的每一位的积是在这个区间里面的 分析:没错了 ,就是记忆化暴力搜索 ,不断的 ...

  7. 2019年华南理工大学软件学院ACM集训队选拔赛 Round1

    TIps: 1.所有代码中博主使用了scanf和printf作为输入输出  2.代码中使用了define LL long long 所以在声明变量的时候 LL其实就等价于long long 希望这两点 ...

  8. 埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 C序列变换

    链接:https://www.nowcoder.com/acm/contest/91/C来源:牛客网没有账号的同学这样注册,支持博主 题目描述 给定两个长度为n的序列,ai, bi(1<=i&l ...

  9. K-序列(埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛)

    题目描述 给一个数组 a,长度为 n,若某个子序列中的和为 K 的倍数,那么这个序列被称为“K 序列”.现在要你 对数组 a 求出最长的子序列的长度,满足这个序列是 K 序列.  输入描述: 第一行为 ...

随机推荐

  1. 撩课-Web大前端每天5道面试题-Day17

    1.apply, call和bind有什么区别? 三者都可以把一个函数应用到其他对象上,注意不是自身对象. apply,call是直接执行函数调用,bind是绑定,执行需要再次调用. apply和ca ...

  2. 编译gRPC Go版本使用的 ProtoBuffer 文件

    本篇文章主要解决mac下安装ProtoBuffer,编译go版本gRPC用的.proto文件 安装 protoc 注意,gRPC 需要用到 proto3, 而目前 Release 的版本是 2.6.1 ...

  3. Implementation:Segment Tree 线段树

    早就听人提起过线段树,今天有题搞不出来,讨论上说要用一下线段树,看了下,本质上是空间划分索引,只不过是一维上面的,如果在二维则是四叉树,三维则是八叉树,如果可以动态调整那么跟R-Tree就很相似了,他 ...

  4. 新项目找不到Angular-cli.json文件

    新项目找不到Angular-cli.json文件 Angular-cli.json文件是Angular5中cli的相关配置信息. 今天创建了新Angular项目后突然发现Angular-cli.jso ...

  5. webpack打包遇到过的问题

    1.打包后html文件打开是空白页面,报错信息如图所示: 解决办法:这里主要是将assetsPublicPath的路径从'/'改为'./'就好了. ('/'表示根目录:'./'表示当前目录) 2.运行 ...

  6. thinkPHP的几个系统常量

    echo "当前请求:" . __SELF__ . '<br>'; echo "当前分组:" . __MODULE__ . '<br>' ...

  7. Burp Suite插件推荐

    BurpSuiteHTTPSmuggler 网址 https://github.com/nccgroup/BurpSuiteHTTPSmuggler 作用 利用 中间件对 HTTP 协议的实现的特性 ...

  8. redis 管道技术 pipeline 简介

    redis数据库的主要瓶颈是网络速度,其次是内存与cpu.在应用允许的情况下,优先使用pipeline批量操作.pipeline批量发出请求/一次性获取响应:不是发出多个请求,每个请求都阻塞等待响应, ...

  9. Pig parallel reduce并行执行数

    parallel语句可以附加到Pig Latin中任一个关系操作符后面,然后它会控制reduce阶段的并行,因此只有对与可以触发reduce过程的操作符才有意义.     可以触发reduce过程的操 ...

  10. insufficient privileges for 'SYS' when 'shutdown immediate'

    SQL> select * from v$version; BANNER------------------------------------------------------------- ...