COLONY - Linearian Colony 一道很水的题却坑我两天!在CF上做过类似的题,用递归可以找到答案,但感觉不会这么麻烦,于是看看有没有什么规律,对Y分奇偶貌似可以找到规律,但WA了三遍,仔细理清才发现前半部分和上一年完全颠倒而后半部分和上一年是一样的,开始以为当Y为奇数:red在p%6=1.2.4这些位置,当Y为偶数:red出现在p%6=0.3.5.前半部分和后半部分很难联系在一起于是规律就是错的,但基于这个特点,我们直接用二分的思想递归,当p在本串的后半部分可以对应上一年的情…
poj 3111 K Best 最大化平均值 二分思想 题目链接: http://poj.org/problem?id=3111 思路: 挑战程序竞赛书上讲的很好,下面的解释也基本来源于此书 设定条件C(x):=可以选择使得单位重量的价值不小于x 如何判定C(x)是否可行 假设选了某个物品的集合是S,那么单位重量的价值是:\[ \sum\limits_{i \in S} {v_i } /\sum\limits_{i \in S} {w_i } \] 因此就变成了判断是否存在S满足下面的条件:\[…
D. Dense Subsequence time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are given a string s, consisting of lowercase English letters, and the integer m. One should choose some symbols fr…
啊我把分子分母混了WA了好几次-- 就是从食蚁兽在的边段成两棵树,然后dp下去可取的蚂蚁数量区间,也就是每次转移是l[e[i].to]=l[u](d[u]-1),r[e[i].to]=(r[u]+1)(d[u]-1)-1,这里注意当l>maxm的时候就return,不然之后的没有贡献而且会爆long long 然后把每个dp到的叶子都二分一下看他的贡献区间里有几群蚂蚁加进答案里最后乘上k即可 #include<iostream> #include<cstdio> #inclu…
说在前面: 题是乱七八糟的. 几个二分的题. (但是我的做法不一定是二分,有些裸暴力. 1. Equations HDU - 1496 输入a,b,c,d问你这个方程有多少解.a*x1^2+b*x2^2+c*x3^2+d*x4^2=0a,b,c,d属于[-50, 50] x1,x2,x3,x4属于[-100,100]且Xi不等于零 解法很简单, 把式子拆两边,拆成a*x1^2 + b*x2^2 = -(c*x3^2 + d*x4^2)的形式,然后暴力枚举就行了. // 注意 如果只枚举正数开始枚…
poj2299   http://poj.org/problem?id=2299题意: 一个含有n个数的数组, 每次只能交换相邻的两个数, 求最少操作多少次可以使该数组变成一个有序数组(从小到大). 分析: 先说一下归并排序吧. 二分的思想, 就是将一元素集合分割成两个或更多个子集合,对每一个子集合分别排序,然后将排好序的子集合归并为一个集合.看图理解会好一点!  归并排序核心操作:将一维数组中前后相邻的两个有序序列归并为一个有序序列. 那看一下我们这题, 其实就是在归并排序的过程中顺便计算一下…
二分是一种很有效的减少时间开销的策略, 我觉得单列出二分专题有些不太合理, 二分应该作为一中优化方法来考虑 这几道题都是简单的使用了二分方法优化, 二分虽然看似很简单, 但一不注意就会犯错. 在写二分时, 会遇到很多选择题, 很多"分叉路口", 要根据实际情况选择合适的"路" HDU2199 Can you solve this equation? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/…
http://www.spoj.com/problems/MINSUB/en/ 题意:给出一个n*m的矩阵M,和一个面积k,要使得M的子矩阵M'的最小元素最大并且面积大于等于k,问子矩阵M'的最小元素最大能是多少,并且求出最大的面积. 思路:二分一个最小元素x,转化为判断矩阵M里面是否存在一个子矩阵使得这个子矩阵的面积大于等于k并且所有元素都大于x. 用另一个矩阵,1表示该位置的元素大于等于x,0表示元素小于x. 转化为判断是否存在一个子矩阵元素为1的面积大于等于k. 这样可以用到早上学习的单调…
/************************************************************************* > File Name: hdu-4185.oil_skimming.cpp > Author: CruelKing > Mail: 2016586625@qq.com > Created Time: 2019年09月03日 星期二 09时12分12秒 本题思路:简单分析过后就可以知道如果一点a被另一个点b匹配,那么和b匹配的点c不可…
题意:       一周有7天,每天可以上12节课,现在给你每科课的上课时间,问你一周最多可以上几科课,一科课只要上一节就行了. 思路:       简单题目,直接二分就行了,好久没写二分匹配了,练习下手而已. #include<stdio.h> #include<string.h> #define N_node 400 #define N_edge 27000 typedef struct {     int to ,next; }STAR; STAR E[N_edge]; in…