【CodeForces - 270C】Magical Boxes (思维,进制,有坑)

题干:

Emuskald is a well-known illusionist. One of his trademark tricks involves a set of magical boxes. The essence of the trick is in packing the boxes inside other boxes.

From the top view each magical box looks like a square with side length equal to 2k(k is an integer, k ≥ 0) units. A magical box v can be put inside a magical box u, if side length of v is strictly less than the side length of u. In particular, Emuskald can put 4 boxes of side length 2k - 1 into one box of side length 2k, or as in the following figure:

Emuskald is about to go on tour performing around the world, and needs to pack his magical boxes for the trip. He has decided that the best way to pack them would be inside another magical box, but magical boxes are quite expensive to make. Help him find the smallest magical box that can fit all his boxes.

Input

The first line of input contains an integer n (1 ≤ n ≤ 105), the number of different sizes of boxes Emuskald has. Each of following n lines contains two integers ki and ai (0 ≤ ki ≤ 109, 1 ≤ ai ≤ 109), which means that Emuskald has ai boxes with side length 2ki. It is guaranteed that all of ki are distinct.

Output

Output a single integer p, such that the smallest magical box that can contain all of Emuskald’s boxes has side length 2p.

Examples

Input

2
0 3
1 5

Output

3

Input

1
0 4

Output

1

Input

2
1 10
2 2

Output

3

Note

Picture explanation. If we have 3 boxes with side length 2 and 5 boxes with side length 1, then we can put all these boxes inside a box with side length 4, for example, as shown in the picture.

In the second test case, we can put all four small boxes into a box with side length 2.

 

题目大意:(练习读题)

已知一个盒子(2^k)可以套四个小盒子(不能套和自己一样大的盒子!)

如果一个盒子的边长大于另一个盒子,那么这个盒子就能够容纳那另一个盒子 。

问用多大边长的正方形盒子,能够容纳所有给出的盒子。(也就是,如果全程一个盒子,需要再来一个盒子!读题!)

第一行给出总共盒子数n,下面n行,每行两个整数,分别代表盒子的大小  和  该大小盒子的盒子数量。(其中第一个盒子是用2的幂次给出。)

解题报告:

  这题我好像做麻烦了,,本来想直接用数组下标代表2的幂次来着,,数量1e9的话也就是说幂次也就几百而已。。但是发现是幂次是2e9(也就是说这题全程在用幂次,跟具体数字完全无关了),,所以就不能直接用数组了,,考虑用map离散化一波,,不算难写但是还是有坑的,比如不能直接除以4,,因为不一定相邻两个大小的盒子一定是大小相差1的,,仔细理解下就能看出来。(其实看了标解后发现不需要存数据的,,直接on_process一波就ok了)

 

AC代码1:(直接on出结果的)

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define ll long long
#define pb push_back
#define pm make_pair
#define fi first
#define se second
using namespace std;
const int MAX = 2e5 + 5;
map<ll,ll> mp;
int main()
{int n;ll ans = 0;ll num,tmp,k;cin>>n;for(int i = 1; i<=n; i++) {scanf("%lld%lld",&k,&num);if(num == 1) k++;while(num > 1) {tmp = num%4 == 0 ? num/4 : num/4+1;num = tmp;k++;}ans = max(ans,k);}printf("%lld\n",ans);return 0 ;}
/*
2
0 3
1 5*/

AC代码2:(map处理的)

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define ll long long
#define pb push_back
#define pm make_pair
#define fi first
#define se second
using namespace std;
const int MAX = 2e5 + 5;
map<ll,ll> mp;
int main()
{int n;ll tmp,num;ll ans = 0;cin>>n;for(int i = 1; i<=n; i++) {scanf("%lld",&tmp);scanf("%lld",&num);ans = max(ans,tmp);mp[tmp] += num;}	map<ll,ll> :: iterator it = mp.begin(),end=mp.end(),ii;--end;for(;it != end; ++it) {num = it->se;++it;ii=it;--it;ll pp = pow(4,ii->fi - it->fi);tmp = num%pp == 0 ? num/pp : num/pp + 1;++it;if(it->se < tmp) {it->se += (tmp - it->se); }--it;}num = end->se;if(num == 1) {printf("%lld\n",ans+1);return 0 ;}while(num >= 4) {tmp = num%4 == 0 ? num/4 : num/4 + 1;num=tmp;ans++;}ll out = num == 1 ? ans : ans+1;if(out==0) out=1;printf("%lld\n",out);return 0 ;}

总结:  掌握那种tmp=的那种方式,,经常需要处理一波(记得那次那个记忆化dp的计算几何题处理边的时候就需要这样来着、、)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/441175.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟机安装黑群晖_【群晖系统】HEI群辉DSM 6.2.1 系统安装图文教程 (19年2月)

黑群晖系统其实是指在普通电脑运行Synology DSM系统, 事实上在普通PC电脑上安装黑群晖(Synology DSM)也非常方便, 现在把教程简单写一下。引导系统装哪里&#xff1f;非常关键的问题&#xff0c;DSM采用系统和数据相分离的结构&#xff0c;也就是说引导系统需要独立安装在一个设…

【Effect CodeForces - 270D】Greenhouse (思维,最长非递减子序列(上升),对偶问题,考虑反面)

题干&#xff1a; Emuskald is an avid horticulturist and owns the worlds longest greenhouse — it is effectively infinite in length. Over the years Emuskald has cultivated n plants in his greenhouse, of m different plant species numbered from 1 to m. His …

错误1053服务没有及时_无法启动xx服务 错误1053:服务没有及时响应启动或控制请求,排查方法。...

sc安装服务&#xff0c;启动失败&#xff1a;显示错误1053&#xff1a;服务没有及时响应启动或控制请求网上找了很多方法资料&#xff0c;什么注册表啊&#xff0c;权限啊之类的。你按照这些都做完后&#xff0c;仍然提示这个错误。告诉你&#xff0c;要检查自己的程序是不是有…

【CodeForces - 219D 】Choosing Capital for Treeland (树形dp)

题干&#xff1a; The country Treeland consists of n cities, some pairs of them are connected with unidirectional roads. Overall there are n - 1 roads in the country. We know that if we dont take the direction of the roads into consideration, we can get …

数据库分页查询mysql_各种数据库的分页查询SQL语句总结

1.oracle数据库分页select * from (select a.*,rownum rc from 表名 where rownum<endrow) a where a.rc>startrow2.DB2数据库分页Select * from (select rownumber() over() as rc,a.* from (select * from 表名 order by 列名) as a) where rc between startrow and en…

【HihoCoder - 1880】地铁环线 (前缀和,水题,模拟)

题干&#xff1a; H市有一环线地铁&#xff0c;一共包含N站&#xff0c;编号1~N。正向行驶的地铁会按1 -> 2 -> 3 -> ... -> N -> 1的方向行驶&#xff0c;反向会按1 -> N -> N-1 -> ... -> 3 -> 2 -> 1的方向行驶。 给定所有相邻两站之间…

unsigned int mysql_mysql 中int类型字段unsigned和signed的探索

转自&#xff1a;http://www.0791quanquan.com/news_keji/topic_816453/探索一&#xff1a;正负数问题拿tinyint字段来举例&#xff0c;unsigned后&#xff0c;字段的取值范围是0-255&#xff0c;而signed的范围是-128 - 127。 那么如果我们在明确不需要负值存在的情况下&#…

【HihoCoder - 1881】特殊任务 (树形图,遍历)

题干&#xff1a; H公司一共有N名员工&#xff0c;编号1~N&#xff0c;其中CEO是1号员工。除了CEO之外&#xff0c;其他员工都有唯一的直接上司&#xff0c;所以N名员工上下级关系恰好形成了一棵树形结构。 我们知道每一名员工向H公司的代码库贡献了多少行代码。具体来说&a…

mysql 主从 keepalived_MySQL之双向主从加keepalived高可用

最近在做MySQL数据库的双向主从&#xff0c;了解到keepalived能够自动判断并切换到可用数据库&#xff0c;自己试了一下&#xff0c;整理出文档来。先声明一下环境iptables开启3306端口或者关掉&#xff0c;关闭selinuxMySQL-01&#xff1a;192.168.204.138MySQL-02&#xff1a…

关于vector的size()的使用问题

vector<int> vec; for (int i 0; i < vec.size() - 1; i) &#xff5b; vec[i] &#xff5d; 这里会有个隐藏问题&#xff0c;当vec的size为0时&#xff0c;因为size&#xff08;&#xff09;函数的返回值是无符号整型&#xff0c;这时vec.size() - 1是一个正数…

mysql密码命名规则_MySql命名规范

数据库环境dev&#xff1a;开发环境&#xff0c;开发可读写&#xff0c;可修改表结构。开发人员可以修改表结构&#xff0c;可以随意修改其中的数据但是需要保证不影响其他开发同事。qa&#xff1a;测试环境&#xff0c;开发可读写&#xff0c;开发人员可以通过工具修改表结构。…

【CodeVS - 3639】(树的重心模板,裸题)

题干&#xff1a; 题目描述 Description 给出一棵树&#xff0c;求出树的中心。 为了定义树的中心&#xff0c;首先给每个结点进行标号。对于一个结点K&#xff0c;如果把K从树中删除&#xff08;连同与它相连的边一起&#xff09;&#xff0c;剩下的被分成了很多块&#xf…

go-mysql查询单条数据_Golang 从 MySQL 数据库读取一条数据

刚开始在 sqlx 和 gorm 两者间纠结了半天&#xff0c;准备使用 sqlx 了&#xff0c;看了文档&#xff0c;感觉就是灾难般的文档。我按照例子硬是没有从 MySQL 读出数据。又尝试了 gorm&#xff0c;这家伙的文档更加不友好&#xff0c;概念更多。调试了半天&#xff0c;返回的结…

【HYSBZ - 1088 】扫雷Mine (简单dp)

题干&#xff1a; 相信大家都玩过扫雷的游戏。那是在一个n*m的矩阵里面有一些雷&#xff0c;要你根据一些信息找出雷来。万圣节到了 &#xff0c;“余”人国流行起了一种简单的扫雷游戏&#xff0c;这个游戏规则和扫雷一样&#xff0c;如果某个格子没有雷&#xff0c;那么它里…

docker启动mysql容器_Docker容器开机自启动

查看所有容器[vagrantlocalhost ~]$ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3f142f72d7e8 redis "docker-entr…

【CodeForces - 527C】Glass Carving(线段树或者SBT或者set)

题干&#xff1a; Leonid wants to become a glass carver (the person who creates beautiful artworks by cutting the glass). He already has a rectangular w mm    h mm sheet of glass, a diamond glass cutter and lots of enthusiasm. What he lacks is understand…

mysql常驻内存_MySQL的内存和相关问题排查

我们都知道数据库是IO密集型一类应用&#xff0c;为了提高其性能大量使用内存代替文件(交换分区)的IO操作是保证数据库稳定、高效的基本原则。那么数据库是如何使用内存的&#xff0c;我们如何查看数据库内存的占用&#xff0c;如何通过通过数据库内存配置设置提高其性能&#…

【HihoCoder - 1850】字母去重 (字符串,思维)

题干&#xff1a; 给定一个字符串S&#xff0c;每次操作你可以将其中任意一个字符修改成其他任意字符。 请你计算最少需要多少次操作&#xff0c;才能使得S中不存在两个相邻的相同字符。 Input 只包含小写字母的字符串S。 1 ≤ |S| ≤ 100000 Output 一个整数代表答案…

bash mysql count()_【MySQL】性能优化之 count(*) VS count(col)

优化mysql数据库时&#xff0c;经常有开发询问 count(1)和count(primary_key) VS count(*)的性能有何差异&#xff1f;看似简单的问题&#xff0c;估计会有很多人对此存在认知误区&#xff1a;1. 认为count(1) 和 count(primary_key) 比 count(*) 的性能好。2. count(column) 和…

【HihoCoder - 1851】D级上司 (树形图,dfs)

题干&#xff1a; H公司一共有N名员工&#xff0c;编号为1~N&#xff0c;其中CEO的编号是1。除了CEO之外&#xff0c;每名员工都恰好有唯一的直接上司&#xff1b;N名员工形成了一个树形结构。 我们定义X的1级上司是他的直接上司&#xff0c;2级上司是他上司的上司&#xf…