cf378D(stl模拟)
题目链接:http://codeforces.com/contest/733/problem/D
用map<pair<int, int>int>标记(第一次用~)...
代码:
1 #include <bits/stdc++.h> 2 #define MAXN 100001 3 using namespace std; 4 5 typedef pair<int, int> pair1; 6 typedef map<pair1, int> map1; 7 8 struct gg{ 9 int x, y; 10 int xx, yy; 11 int xxx, yyy; 12 }jj[MAXN*3]; 13 14 int main(void){ 15 int n, k=1; 16 map1 mp; 17 for(int i=0; i<MAXN; i++){ 18 jj[i].x=jj[i].y=jj[i].xx=jj[i].yy=jj[i].xxx=jj[i].yyy=0; 19 } 20 scanf("%d", &n); 21 for(int i=1; i<=n; i++){ 22 int a[3], ok1=0, ok2=0, ok3=0; 23 scanf("%d%d%d", &a[0], &a[1], &a[2]); 24 sort(a, a+3); 25 if(a[0]==a[2]){ 26 ok1=1; 27 } 28 if(a[0]==a[1]){ 29 ok2=1; 30 } 31 if(a[1]==a[2]){ 32 ok3=1; 33 } 34 int flag1=mp[pair1(a[0], a[1])]; 35 if(flag1==0){ 36 jj[k].x=a[0]; 37 jj[k].y=a[1]; 38 jj[k].xx=a[2]; 39 jj[k].xxx=i; 40 mp[pair1(a[0], a[1])]=k; 41 k++; 42 }else{ 43 if(jj[flag1].xx>jj[flag1].yy){ 44 swap(jj[flag1].xx, jj[flag1].yy); 45 swap(jj[flag1].xxx, jj[flag1].yyy); 46 } 47 if(jj[flag1].xx<a[2]){ 48 jj[flag1].xx=a[2]; 49 jj[flag1].xxx=i; 50 } 51 } 52 if(ok1){ 53 continue; 54 } 55 if(!ok3){ 56 int flag2=mp[pair1(a[0], a[2])]; 57 if(flag2==0){ 58 jj[k].x=a[0]; 59 jj[k].y=a[2]; 60 jj[k].xx=a[1]; 61 jj[k].xxx=i; 62 mp[pair1(a[0], a[2])]=k; 63 k++; 64 }else{ 65 if(jj[flag2].xx>jj[flag2].yy){ 66 swap(jj[flag2].xx, jj[flag2].yy); 67 swap(jj[flag2].xxx, jj[flag2].yyy); 68 } 69 if(jj[flag2].xx<a[1]){ 70 jj[flag2].xx=a[1]; 71 jj[flag2].xxx=i; 72 } 73 } 74 } 75 if(ok2){ 76 continue; 77 } 78 int flag3=mp[pair1(a[1], a[2])]; 79 if(flag3==0){ 80 jj[k].x=a[1]; 81 jj[k].y=a[2]; 82 jj[k].xx=a[0]; 83 jj[k].xxx=i; 84 mp[pair1(a[1], a[2])]=k; 85 k++; 86 }else{ 87 if(jj[flag3].xx>jj[flag3].yy){ 88 swap(jj[flag3].xx, jj[flag3].yy); 89 swap(jj[flag3].xxx, jj[flag3].yyy); 90 } 91 if(jj[flag3].xx<a[0]){ 92 jj[flag3].xx=a[0]; 93 jj[flag3].xxx=i; 94 } 95 } 96 } 97 int cc=0, dd=0, ee=0; 98 for(int i=1; i<k; i++){ 99 int cnt=min(jj[i].x, jj[i].y); 100 cnt=min(cnt, jj[i].xx+jj[i].yy); 101 if(cc<cnt){ 102 cc=cnt; 103 dd=jj[i].xxx; 104 ee=jj[i].yyy; 105 } 106 } 107 if(dd&&ee){ 108 printf("2\n%d %d\n", dd, ee); 109 }else{ 110 printf("1\n%d\n", dd+ee); 111 } 112 return 0; 113 }
转载于:https://www.cnblogs.com/geloutingyu/p/6024263.html
cf378D(stl模拟)相关推荐
- C++ STL : 模拟实现STL中的关联式容器unordered_map/unordered_set
目录 unordered_map/unordered_set unordered_map/unordered_set与map/set的区别 底层哈希桶的改造 仿函数 Key值的获取方法 hash(ke ...
- 1/22 测试一(STL 模拟 贪心)C.(贪心,给出气球,输出最好成绩)Contest Balloons
1/22 测试一(STL 模拟 贪心) C.(贪心,给出气球,输出最好成绩)Contest Balloons One tradition of ACM-ICPC contests is that a ...
- STL模拟实现1.0 -- list和iterator模拟实现和简单分析
引言 C ++ 标准模本库<STL>中有很多优秀的代码实现,不然怎么能叫做C++标准模板库呢,其中一个实现就是有一个容器,叫做list.所谓容器其实就是存储相同类型数据的一个存储集合,li ...
- UVA-11995(STL+模拟)附讲解
题目传送门 题目大意 给一个"包"(某种数据结构)输入一些数据,然后又从中取出一部分,根据这些数据判断这个"包"是哪种数据结构,对应输入"stack& ...
- C++ STL : 模拟实现STL中的容器适配器stack和queue
目录 什么是容器适配器 stack stack的文档介绍-(来自cplusplus) stack的实现 queue queue的文档介绍-(来自cplusplus) queue的实现 什么是容器适配器 ...
- C++ STL : 模拟实现STL中的list类
文章目录 list list的介绍 list的优缺点 list的迭代器失效问题 实现的接口 节点部分 迭代器部分 list部分 代码实现 list list的介绍 list的文档介绍 list是可以在 ...
- C++ STL : 模拟实现STL中的vector类
文章目录 vector vector的介绍 vector的优缺点 实现时需要注意的细节问题 1. Capacity增长问题 2. memset等函数来带的按字节拷贝问题 3. 深浅拷贝问题 4. 迭代 ...
- 【51nod - 1875】 丢手绢(约瑟夫问题,可打表,用STL模拟)
题干: 六一儿童节到了,小朋友们在玩丢手绢的游戏.总共有C个小朋友,编号从1到C,他们站成一个圈,第i(1<i<=C)个人的左边是i-1,第1个人的左边是C.第i(1<=i<C ...
- hrbust 1313 火影忍者之~静音【优先队列STL+模拟】
火影忍者之-静音 Time Limit: 1000 MS Memory Limit: 32767 K Total Submit: 246(58 users) Total Accepted: 76(54 ...
- AtCoder - ABC 170 - D(思维+数论)E(STL+模拟)
D - Not Divisible 题意: 现有一个长度为 n 的序列 A,请你输出满足以下条件的所有整数 的数量: 对于每一个整数 j (1 ≤ j ≤ n且 i ≠ j) , ≠ 0 ( mo ...
最新文章
- Lotus Sametime 服务器的安装和配置
- Linux系统调用及其效率
- 正则表达式发明者_正则表达式 – 简介
- 56.ISE综合,在chipscope信号列表看不到
- 如何在画面中摆放大量图片
- CF496E-Distributing Parts【平衡树,贪心】
- 链表相加 2. 两数相加
- UNIX(多线程):17---异步任务提供者(Provider) 介绍
- 特殊乘法(字符串循环的结束标志)
- c++ 正则表达式_Java入门 - 语言基础 - 18.正则表达式
- c语言实现线程相关操作,如何用C语言实现多线程
- 学生时代的经历,利用Python在机房杀红蜘蛛,脱离老师控制!
- Linux-----信号量
- CSDN 中 MarkDown编辑器自动生成目录
- uber_您需要了解的有关Uber驾驶的知识
- 韩乔生最牛的一次解说 (超级搞笑)
- 使用批处理进行简单U盘杀毒 - TEST
- WindowManager LayoutParams 上
- android点击按钮打开相册,打开相机的代码
- Arduino开发板esp32
热门文章
- 全网首发:以管理员身份运行bat,自动切换盘符、目录的正确做法
- 环形电流计算公式_圆环电流的电流密度
- bat批处理 变量名写入文本,中文写入文本,延迟写入文本
- html flash rtmp,Web直播之RTMP协议:vue-video-player + videojs-flash
- 本科计算机相关课程设计,计算机科学及技术专业本科生大学课程设计.doc
- 城市定位html,城市定位页.html
- dom运行java中文错误,java – org.w3c.dom.DOMException:WRONG_DOCUMENT_ERR:一个节点用于不同于创建它的文档中的文档...
- python 股票行情_十分钟学会用Python交易股票
- Python3优雅操作-时间处理与定时任务
- “九”答不可 | 量子计算会“带来革命性改变”吗?