Shaolin(map||set)
Shaolin
hdu4585-题意:
对于每一个新队友,找到与他实力最接近的老队友(优先选实力低的),然后新队员加入成老队员
解析:
明显用二分处理,查找与他实力最近的两位
set,map都能自动排序,选择任意一种解决
1.map&set
ac:
#include<bits/stdc++.h>
using namespace std;
map<int,int> mp;set<int> st;
set<int>::iterator it;int main()
{int n,x,j;while(scanf("%d",&n)!=EOF){if(n==0)break;st.clear();st.insert(1000000000);mp[1000000000]=1;if(n==0)break;for(int i=1;i<=n;i++){scanf("%d%d",&j,&x);mp[x]=j;it=st.lower_bound(x);if(it==st.end()){it--;printf("%d %d\n",j,mp[*it]);}else{int v=*it;if(it!=st.begin()){it--;int g=*it;//小的if(abs(g-x)<=abs(v-x))printf("%d %d\n",j,mp[g]);elseprintf("%d %d\n",j,mp[v]);}elseprintf("%d %d\n",j,mp[*it]);}st.insert(x);}}return 0;
}
map
ac:
#include<bits/stdc++.h>
using namespace std;
map<int,int> mp;
map<int,int>::iterator it;int main()
{int n,j,x;while(scanf("%d",&n)!=EOF){if(n==0)break;mp.clear();mp[1000000000]=1;for(int i=0;i<n;i++){scanf("%d%d",&j,&x);it=mp.upper_bound(x);if(it==mp.end()){it--;printf("%d %d\n",j,it->second);}else{if(it==mp.begin())printf("%d %d\n",j,it->second);else{int v=it->first;it--;int g=it->first;if(abs(g-x)<=abs(v-x))printf("%d %d\n",j,it->second);elseprintf("%d %d\n",j,(++it)->second);}}mp[x]=j;}}return 0;
}
hdu-6667:http://acm.hdu.edu.cn/showproblem.php?pid=6667
题意:
每个班有a[i]个人,产生b[i]杯咖啡
每个班的人只能吃别的班的咖啡
问有多少人能喝咖啡:
ac:
我用unordered_map遍历,喝完了就删掉
unordered_map删除的时候,要it++后,吧(it-1)删掉,不能直接删 it->first,如果直接删除,it->first指针溢出
ac:
#include<bits/stdc++.h>
#define lowbit(x) (x)&(-x)
#define IOS ios::sync_with_stdio(false);cin.tie(0);
#define pb push_back
#define ll long long
#define mod 1e9+7
#define MAXN 2000005
using namespace std;
typedef unsigned long long ull;
ll gcd(ll a,ll b) {while(b^=a^=b^=a%=b);return a;}
ll a[MAXN],b[MAXN];unordered_map<int,int> hash1;
unordered_map<int,int>::iterator it,gt;int main()
{//IOS//freopen("E:/in.txt","r",stdin);//freopen("E:/out.txt","w",stdout);int t,n;scanf("%d",&t);while(t--){hash1.clear();scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d%d",&a[i],&b[i]);hash1[i]=b[i];}ll sum=0;for(int i=1;i<=n;i++){int k=a[i];for(it=hash1.begin();it!=hash1.end();){if(i==it->first){}else{if(it->second<k){k-=it->second;sum+=it->second;hash1[it->first]=0;}else{hash1[it->first]=hash1[it->first]-k;sum+=k;break;}} //注意,不能直接删除gt->firstgt=it;it++;if(hash1[gt->first]==0)hash1.erase(gt->first);}}printf("%lld\n",sum);}return 0;
}
Shaolin(map||set)相关推荐
- Shaolin HDU - 4585(map模板题)
题意: 少林寺有n+1个和尚,他们都有一个独有的编号和战斗力值,当一个年轻人通过所有考试并被宣布为少林的新僧人时,将会有一场战斗,作为欢迎的一部分.新和尚必须与一位战斗等级最接近他的战斗等级的老和尚战 ...
- Shaolin(map+iterator) HDU - 4585
Shaolin(map+iterator) HDU - 4585 少林寺以武僧而闻名.每年都有很多年轻人去少林寺当和尚.少林的主人评估一个年轻人主要通过他的人才了解佛教经文,但武功也考虑在内. 当一个 ...
- Map的分类和不同的应用场景
java为数据结构中的映射定义了一个接口java.util.Map; 它有四个实现类,分别是HashMap,Hashtable,LinkedHashMap和TreeMap 可能很多人只使用过HashM ...
- java1.8新增超实用Map方法——Map.getOrDefault()和Map.value()方法详解
1. Map.getOrDefault() 翻译一下官方解释: java.util.Map<K, V> V getOrDefault(Object key, V defaultValue) ...
- Go 学习笔记(67)— Go 并发安全字典 sync.Map
1. 并发不安全的 map Go 语言中的 map 在并发情况下,只读是线程安全的,同时读写是线程不安全的. 换句话说,在同一时间段内,让不同 goroutine 中的代码,对同一个字典进行读写操作是 ...
- Python 常用内置函数map、zip、filter、reduce、enumerate
Python 中有许多非常实用的内置函数,通过这些函数我们可以方便的实现某些功能,下面就列举一些常用的内置函数. 1. map() 函数 map() 可以根据提供的函数对指定序列做映射,它接受一个函数 ...
- 将request中的所有参数存放到自定义的map中
/*** <获取参数map>* * @return 参数map* @throws Exception */protected Map<String, Object> getPa ...
- Map再整理,从底层源码探究HashMap
前言 本文为对Map集合的再一次整理.内容包括:Map HashMap LinkedHashMap TreeHashMap HashTable ConcurrentHashMap Map Map< ...
- Java集合详解之Map
一.首先看看集合框架体系图 从图中可以看到,Map接口扩展了Iterator接口,关于Iterator接口详解请移步:Iterator接口详解 二.Map是什么? Map<k,v>使用键值 ...
- 网络模型mAP计算实现代码
网络模型mAP计算实现代码 一.mAP精度计算 这里首先介绍几个常见的模型评价术语,现在假设我们的分类目标只有两类,计为正例(positive)和负例(negtive)分别是: 1)True posi ...
最新文章
- 谈谈NITE 2与OpenCV结合的第二个程序(提取人体骨骼坐标)
- qml dockwidget窗口停靠
- IIS 之 Asp.Net项目内部运行详解
- 1到10选一个数字读心术_厉害了!quot;广东110“互联网报警满足您多场景报警需求!...
- 用webstorm自动编译less产出css和sourcemap
- HTTP(2)----图文解析HTTP
- android 获取网卡mac_android 获取MAC地址
- 《战地风云2042》游戏评测,云游戏走起
- w7系统里没有iis信息服务器,win7系统控制面板的管理选项没有“internet信息服务(IIS)管理器”的解决方法...
- “恶意版”俄罗斯方块游戏火了
- Ubuntu X86编译安装Gstreamer nvenc插件(硬件编码)
- SCAU-春季训练-不应该啊(怎么这么菜。。。)
- Leetcode 1905. Count Sub Islands
- 统计多个渠道App下载量效果
- 台积电2016年6月营收公布:股价飙升创台个股新记录
- 达梦使用powerdesigner生成er模型图
- pytorch dataload 出错:: invalid argument 0: Sizes of tensors must match except in dimension 0
- Python输入圆的半径,计算圆的周长和面积
- Android 媒体 IV-支持的媒体格式
- java web QQ (前言)
热门文章
- Manjaro找不到默认键盘布局
- 小白入门——关于什么是区块链
- 拿webshell的一些姿势
- REST, Hypermedia HATEOAS
- cao方法matlab程序,偏最小二乘法 matlab程序 [转]
- 解析 DES 加密算法(C语言):
- 【Python】Spy++使用
- Python爬虫实现无限刷不背单词app的酷币!很有意思!
- 充电器pps功能是什么_科普:PPS充电器为何不兼容笔电?
- can总线短距离不用双绞线_CAN总线抗干扰的6条“军规”