思想-二分
tianxiang971016
ztx97
blog.ztx97.win(希望有生之年搭起来
展开
-
[SCU4437] Carries [2015 Sichuan Province Contest Final B]
题意就是现在给出1010万个10910^9以内的非负整数, 问他们两两相加一共会有多少次进位(1010进制加法), 例如99+199 + 1有22次进位,10+1910 + 19没有进位。题解这个题考虑进位的位置即可, 首先枚举进位是因为达到了10,100,1000,…,10910,100,1000,\dots, 10^9对于每一次枚举10t10^t, 就是在1010万个数中对于每一个数xmod10原创 2016-07-26 19:33:51 · 355 阅读 · 0 评论 -
[HDU5741] Helter Skelter [2016 Multi-University Training Contest 2(2016多校联合训练2) H]
题意给定0101序列,每次询问是否存在连续区间使得00的个数为aia_i,11的个数为bib_i.题解对于一个固定的aa,可行的bb是一个区间.如果我们把所有可行的(a,b)(a,b)画在二维平面上, 可以观察到这个可行区域一定是连通的,且上下界有一些和xx轴yy轴平行的线段组成.于是我们需要求出这个区域的上下边界.对于上边界中在线段转折处的点,一定是一个从11开始, 以11结尾的序列长度,原创 2016-07-28 21:09:48 · 400 阅读 · 0 评论 -
[AIZU1361] Deadlock Detection [2015 ACM-ICPC Asia Tsukuba Regional Contest F]
题意给出pp个进程和rr种资源,每一种资源有rir_i个资源,每个进程对每一种资源需要need[p][r]need[p][r]个。 给出时刻表,每个时刻会有一个进程请求某一种资源中的一个,当一个进程将所有需要的资源请求完毕后会释放掉所有资源。由于资源分配顺序不当可能出现“锁死现象”,某两个进程等待对方施放资源。问什么时刻会“不可避免地”将要出现“锁死现象”。题解二分时间tt,tt及之前的请求按照给原创 2016-07-30 14:58:19 · 472 阅读 · 0 评论 -
[Codeforces Round #372 DIV1B (CF715B)] Complete The Graph
题意给定一个图,图中一些边的长度未知,问是否存在最短路长度恰好为LL的可能题解将所有未知边长度赋为11,最短路长度为lenminlen_{min},将所有未知边长度赋为无穷,最短路长度为lenmaxlen_{max}。如果lenmin≤L≤lenmaxlen_{min}\le L\le len_{max},则有解。 二分边长,使得未知边长度为kk时最短路长度lenk<Llen_k<L,未知边长度为原创 2017-01-24 14:24:56 · 387 阅读 · 0 评论 -
[Codeforces Round #310 DIV1D (CF555D)] Case of a Top Secret
题意nn个钉子在墙上成一排排开,给出坐标,每次询问在某个钉子下面挂长度为ll的绳子开始逆时针旋转,最后会一直绕着哪个钉子旋转。题解首先模拟绳子先会碰到哪颗钉子,然后转到上面,这一步非常重要,因为这之后就能保证绳子不会绕到更远的地方去。再然后就是不断地二分,模拟。代码/// by ztx#include <cstdio>#define Rep(i,l,r) for(i=(l);i<=(r);i++)原创 2017-01-24 14:02:39 · 341 阅读 · 0 评论 -
[Codeforces Round #286 DIV1C (CF506C)] Mr. Kitayuta vs. Bamboos
题意nn个竹子长度为hih_i,每天结束后增长aia_i,现在K可以工作mm天,每天砍竹子最多kk次,每一次把一个竹子砍下去pp长度且不能为负。询问mm天过后,最高竹子最矮能是多少。题解先二分答案MM,反向思考,转化为:第一天所有竹子都高为MM,此后每一天减少aia_i,K可以选择把哪些竹子增高。 设竹子最后高度为h′ih_i^{'}如果一直不去增高竹子最后一天有三种情况: 1. hi<=h′i原创 2017-01-24 11:41:53 · 487 阅读 · 0 评论 -
[HackerRank 101 Hack 51] Small Cubes
题意给定一个(n,m,k)(n,m,k)的长方体,沿xx轴每一层mkmk个单位1的小正方体,其中,每一层都有一个矩形区域是空的,这个矩形区域是平行于y,zy,z轴的。现在用正方体填满这个长方体的空缺部分,用到的正方体的最大边长为maxmax,正方体的个数为numnum,最大化max⋅p+num⋅qmax\cdot p + num\cdot q,p,q给出。n,m,k≤105n,m,k\le 10^5原创 2017-08-14 16:39:30 · 357 阅读 · 0 评论