博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Round #547 (Div. 3) D
阅读量:6860 次
发布时间:2019-06-26

本文共 2158 字,大约阅读时间需要 7 分钟。

 

题目大意:

鞋子匹配,用一个小写字母表示一种颜色。L[i]表示左脚的颜色,R[i]表示右脚的颜色,只有当L[i]和R[j]的颜色差不多了,才算匹配成功。但是,有一种特殊的颜色‘?’,该颜色可以和任意另一半鞋子匹配。

 

思路:

取出‘?’,格外判断就好了

 

//看看会不会爆int!数组会不会少了一维!//取物问题一定要小心先手胜利的条件#include 
#pragma comment(linker,"/STACK:102400000,102400000")#define LL long long#define ALL(a) a.begin(), a.end()#define pb push_back#define mk make_pair#define fi first#define se second#define haha printf("haha\n")using namespace std;const int maxn = 150000 + 5;vector
> l, r;bool fl[maxn], fr[maxn];char ch[maxn];int n;int main(){ cin >> n; scanf("%s", ch); vector
> wenhaol; for (int i = 0; ch[i] != '\0'; i++){ if (ch[i] >= 'a' && ch[i] <= 'z') l.pb(mk(ch[i], i)); else if (ch[i] == '?') wenhaol.pb(mk(ch[i] + 80, i)); } sort(l.begin(), l.end()); scanf("%s", ch); vector
> wenhaor; for (int i = 0; ch[i] != '\0'; i++){ if (ch[i] >= 'a' && ch[i] <= 'z') r.pb(mk(ch[i], i)); else if (ch[i] == '?') wenhaor.pb(mk(ch[i] + 80, i)); } sort(r.begin(), r.end()); vector
> ans; int lb = 0, rb = 0; while (lb < l.size() && rb < r.size()){ //printf("lb = %d rb = %d\n", lb, rb); if (l[lb].fi == r[rb].fi){ ans.pb(mk(l[lb].se, r[rb].se)); fl[lb] = fr[rb] = 1; lb++, rb++; continue; } /*if (l[lb].fi == '?' + 80 || r[rb].fi == '?' + 80){ ans.pb(mk(l[lb].se, r[rb].se)); fl[lb] = fr[rb] = 1; lb++, rb++; continue; }*/ if (l[lb].fi > r[rb].fi && l[lb].fi != '?' + 80){ rb++; continue; } if (r[rb].fi > l[lb].fi && r[rb].fi != '?' + 80){ lb++; continue; } } lb = 0, rb = 0; for (int i = 0; i < l.size(); i++){ if (fl[i] != 1 && rb < wenhaor.size()){ ans.pb(mk(l[i].se, wenhaor[rb].se)); rb++; } } for (int i = 0; i < r.size(); i++){ if (fr[i] != 1 && lb < wenhaol.size()){ ans.pb(mk(wenhaol[lb].se, r[i].se)); lb++; } } while (lb < wenhaol.size() && rb < wenhaor.size()){ ans.pb(mk(wenhaol[lb].se, wenhaor[rb].se)); lb++, rb++; } printf("%d\n", ans.size()); for (int i = 0; i < ans.size(); i++){ printf("%d %d\n", ans[i].fi + 1, ans[i].se + 1); } return 0;}
View Code

 

转载于:https://www.cnblogs.com/heimao5027/p/10650300.html

你可能感兴趣的文章
LeetCode 359 Logger Rate Limiter
查看>>
Windows核心编程04-字符编码
查看>>
mysqlcluster笔记
查看>>
ArcCore重构-Makefile模块化
查看>>
例10-3 uva10375(唯一分解定理)
查看>>
Python 魔术方法指南
查看>>
HTML概述
查看>>
BZOJ 4245: [ONTAK2015]OR-XOR
查看>>
github 错误
查看>>
idea 项目转 eclipse项目
查看>>
js去除空格,判断是否包含
查看>>
css3 背景色 实现边框渐变运动动画
查看>>
c#实现常用排序算法
查看>>
rails中输出excel
查看>>
leetcode504
查看>>
消息中间件系列三:使用RabbitMq原生Java客户端进行消息通信(消费者(接收方)自动确认模式、消费者(接收方)自行确认模式、生产者(发送方)确认模式)...
查看>>
软件过程与项目管理(第七周作业)
查看>>
Java-生成验证码图片(自定义内容,尺寸,路径)
查看>>
Word2007:如何在竖版(纵向)页面中间插入横版(横向)页面
查看>>
CentOS中配置xrdp,通过微软远程桌面访问CentOS桌面
查看>>