随笔分类 - 二分
1
摘要:Color a Tree HDU - 6241
阅读全文
摘要:/* 奇数怎么搞呢 二分到答案怎么judge呢 贪心怎么贪呢 假设贪心方案是 前两个挨着取 后面的能靠前就靠前 这样子似乎保证了ans最min 但是不管贪的对不对 操作起来时间GG 而且 如果真的这样搞 二分出来的答案就没啥用了 如果按二分通常的套路来说 应该是拿二分出的ansi来贪心的溜一遍 看看合不合法 但是一般都有一个值来辅助判断合不合法 显然这个题需要我们自己构造 (emmmm说了一堆...
阅读全文
摘要:/* codevs 2765 很明显的二分 半年不写代码 超丑 怎么能忍, */ #include #include #define maxn 30010 using namespace std; const double Tar=0.6180339887498949; int n,m,a[maxn],x1,x2; double ans; double Min(double x,doubl...
阅读全文
摘要:1.第K小数 (number.cpp/c/pas) 【问题描述】 有两个正整数数列,元素个数分别为N和M。从两个数列中分别任取一个数 相乘,这样一共可以得到N*M个数,询问这N*M个数中第K小数是多少。 【输入格式】 输入文件名为number.in。 输入文件包含三行。 第一行为三个正整数N,M和K
阅读全文
摘要:/*codevs 3279 二分+dfs贪心检验 堆版本 re一个 爆栈了*/ #include #include #include #define pa pair #define mk make_pair #define X first #define Y second #define maxn 100010 using namespace std; int n,S,num,head[maxn...
阅读全文
摘要:幸运数字(number)Time Limit:1000ms Memory Limit:64MB题目描述LYK 最近运气很差,例如在 NOIP 初赛中仅仅考了 90 分,刚刚卡进复赛,于是它决定使用一些方法来增加自己的运气值。它觉得,通过收集幸运数字可以快速的增加它的 RP 值。它给幸运数字下了一个定
阅读全文
摘要:P75竞赛时间: ????年??月??日??:??-??:?? 注意事项(请务必仔细阅读) 【 问题描述】 从1 − N中找一些数乘起来使得答案是一个完全平方数,求这个完全平方数最大可能是多少。【输入格式】第一行一个数字N。【输出格式】一行一个整数代表答案对100000007取模之后的答案。【样例输
阅读全文
摘要:【问题描述】 祖玛是一款曾经风靡全球的游戏,其玩法是:在一条轨道上初始排列着若干个彩色珠子,其中任意三个相邻的珠子不会完全同色。此后,你可以发射珠子到轨道上并加入原有序列中。一旦有三个或更多同色的珠子变成相邻,它们就会立即消失。这类消除现象可能会连锁式发生,其间你将暂时不能发射珠子。 开发商最近准备
阅读全文
摘要:/* cogs 2507 零食店 跪了这题的数据了.... 第一遍Q*m 暴力询问 嗯 以为能的70 但只有40 Q已经到了1e6了 考试的时候 放弃了第三题又打了一遍 这次是Q*(n+logn) 最后发现和暴力分一样.... 好吧数据很厉害 吓得我在地上爬23333 好吧 考完了之后 看了正解 我靠这不和我的一个样吗 哎 啊啊啊 二分.... 傻傻的我笑了 都想出了方程 没打二分 ..... ...
阅读全文
摘要:/* poj 3565 递归分治 还有用KM的做法 这里写的分治 按紫书上的方法 不过那里说的有点冗杂了 可以简化一下 首先为啥可以分治 也就是分成子问题解决 只要有一个集合 黑白的个数相等 就一定能一一匹配 这个应该比较明显 因为是special judge 所以我们只要保证每次处理的集合黑白相等就好了 关键是怎么分 我们找到最下最左的点 作为基点 然后将其他的按照连线与横坐标夹角的大...
阅读全文
摘要:/* 我尼玛这题不想说啥了 亏了高精写的熟..... 加减乘除max都写了 高精二分 */ #include #include #include #define maxn 1010 #define memcpy(a,b); for(int i=0;i9){c[i+1]++;c[i]%=10;} if(c[L+1])L++;c[0]=L; memcpy(a,c); } void ...
阅读全文
摘要:/* 先来说一下第一眼看到想出的奇葩方法23333.. 找每个数左右有几个比他小的 前几天刚学了区间第k小的求法 然后... 枚举中间的那个点 对于左区间 二分找到他是第几大 右区间同理 然后 *起来 */ #include #include #include #include #define maxn 50010 #define maxm 50010*18*5 #define ll lon...
阅读全文
摘要:/* 考试的时候没想出正解 也没打暴力 时间不够了 随便yy了几种情况按出现的先后顺序处理而没有贪心 的了20分 不粘了 正解是围绕首都的儿子来搞的 显然先二分答案 对于每个限定的最大时间 我们尝试着那每个军队向根节点蹦 能蹦到的记下来最靠近根的点 并记下剩下多少时间 不能蹦到的 记下能蹦到哪里 并且标记为已有军队 最后updata一下不能蹦到的 说不定可以蹦到首都的儿子 或者首都的儿子的儿子都...
阅读全文
摘要:/* 这题10^8的暴力可以出答案 但是 慢..... 有个小小的bug 出题人卡int 却没注意short 用short可以不用hash 直接搞 49428K 313MS */ #include #include #include #define base 12500000 using namespace std; int a1,a2,a3,a4,a5,x1,x2,x3,x4,x5,ans; ...
阅读全文
摘要:/* 95 最后一个点T了 qian lv ji qiong 了 没学过树剖 听chx听xzc说的神奇的方法 Orz 首先求出每个计划的路径长度 这里写的倍增 然后二分答案 对于每个ans 统计>他的路径条数 tot 并维护最大差值 dec 并且对于每条不合法的路径维护每个点的经过次数 然后枚举点 如果经过次数==tot说明每一条不合法的都经过他 然后尝试把它建成虫洞 如果他对应边的权值>...
阅读全文
摘要:/* 维护区间最小值 数据不超int 相反如果long long的话会有一组数据超时 无视掉 ll int */ #include #include #include #define maxn 1000010 #define ll int #define inf 0x7fffffff using namespace std; ll n,m,num,a[maxn],falg; struct n...
阅读全文
摘要:/* 二分答案 这个题目要求“体力和最小的那个小组的所有人的体力和尽量大” 很明显我们二分最小体力 如果合法 逐渐放大 但是这里我们二分的是最小而不是最大 所以累加的体力>=ans时 跳过当前体力i (可以认为把他归给了上一组) 累加和=0 继续分组 */ #include #include #include #define ll long long #define maxn 30010...
阅读全文
摘要:/* 二分答案(注意精度) 对于每一个答案 有(s1+s2+s3...)/(t1+t2+t3...)>=ans 时符合条件 这时ans有变大的空间 对于上述不等式如果枚举每一条路显得太暴力 化简一下变成 :s1-t1*ans+s2-t2*ans+s3-t3*ans...>=0 差分约束跑最长路 如果dis[n]>0 或者有正环 (开始这个忘掉了)ans就合法 */ #include #incl...
阅读全文
摘要:/* codevs 4163 神犇与逆序对 */ #include #define ll long long #define maxn 1000010 using namespace std; ll n,a[maxn],b[maxn],ans; ll init() { ll x=0;char s;s=getchar(); while(s'9')s=getchar(); ...
阅读全文
摘要:#include #include #include #include #define maxn 20010 using namespace std; int n,m,k,num,f[maxn],head[maxn],dis[maxn]; struct node { int u,v,t,pre; }e[maxn]; int init() { int x=0;char s=getc...
阅读全文
1

浙公网安备 33010602011771号