题目大意:有一种操作(u,c),表示所有以u为终点的边的权值减去c,所有以u为起点的边权值加上c
最后要求所有的边的权值非负且尽量大解题思路:最小且最大,二分,枚举边的最小权值,然后看是否符合
对于给出的所有有向线段(u,v,val)
所有对u和v的操作才会影响到这条边,对其他点的操作并不会影响到,所以可以将边分开出来讨论
假设对u的操作为d[u],对v的操作为d[v],那么这条边的权值就变...
分类:
其他好文 时间:
2015-08-05 20:29:51
阅读次数:
119
题意:判断一个字符串能否划成三段非空回文串。思路:先用二分+hash在nlogn的时间内求出以每条对称轴为中心的回文串的最大半径r[i](可以用对称的两个下标之和来表示 ),然后利用r[i]求出pre[i]和suf[i],其中pre[i]表示0~i能否形成回文串,suf[i]表示i~n-1能否形成回...
分类:
其他好文 时间:
2015-08-02 08:54:58
阅读次数:
225
戳我穿越:http://acm.hdu.edu.cn/showproblem.php?pid=1735对于贪心,二分,枚举等基础一定要掌握的很牢,要一步一个脚印走踏实这是道贪心的题目,要有贪心的意识。首先将所有为0的地方统计,因为是求最小的字数,所有最后一行后面的0可以看为空格直接减掉,因为有m段(...
分类:
其他好文 时间:
2015-07-28 17:49:31
阅读次数:
90
题意:x^z+y^z+xyz=k,给定k求出满足该式子的x,y有多少种。(x1,k
分析:
一看就是卡时间的题,这种题一般方法是枚举,但是要先分析一下数据的关系,把枚举的变量的数据范围缩小到可接受的程度;另外二分在这种题里是常用的方法。
本题要复杂一点,有三个变量都要枚举。首先z作为幂,而k
然后是做法:因为有三个变量,如果用上面估算得到的范围来枚举,三重循环还是会超时,这就要求我们用效率...
分类:
其他好文 时间:
2015-07-27 23:04:46
阅读次数:
199
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4888标题两个参数,途径:小参数的枚举,然后二分法大参数想想两个点。以后就不会了两个参数 然后在暴力,实上K能够非常大 所以时间不够自己写的二分枚举+高速幂程序WA了非常久。。。。...
分类:
其他好文 时间:
2015-07-27 12:41:45
阅读次数:
117
给定n个从小到大排好序的数,要从中选出c个数,使得任意两个相邻数的间隔最小的值尽量的大。求最大的最小间隔。#include
#include
#include
using namespace std;
int a[111111];
int vis[111111];
int cha[11111];int n,k;int cheak(int...
分类:
其他好文 时间:
2015-07-21 12:54:16
阅读次数:
77
题意:给出n个位置,需要将m头牛放在这些位置中,使得所有相邻两头牛间的最小距离最大,求最大的最小距离;思路:二分枚举最优解。先将所有位置排序,从最大总距离枚举到0,若满足差值大于等于枚举值的位置个数大于等于m,则当前枚举值为最优解。#include#include#includeusing name...
分类:
其他好文 时间:
2015-07-13 00:42:43
阅读次数:
499
题意:给出n个元素的数组a和m个元素的数组b,求数组a中元素与数组b中元素相乘所得乘积的第k大值;思路:暴力超时,采用二分;先将两数组从大到小排序,外层二分枚举答案,内层二分查找与当前枚举值相等的乘积所在的区间;#include#include#includetypedef long long ll...
分类:
其他好文 时间:
2015-06-14 13:44:37
阅读次数:
170
题目链接:click here~~
【题目大意】:
题意:有一些衣服,每件衣服有一定水量,有一个烘干机,每次可以烘一件衣服,每分钟可以烘掉k单位水。每件衣服没分钟可以自动蒸发掉一单位水,
用烘干机烘衣服时不蒸发。问最少需要多少时间能烘干所有的衣服。
【解题思路】:
题目数据较大,常规方法肯定会TE,首先可以想到二分枚举答案。枚举时间mid值,(一般二分的题目,题目叫你求什么,就二分什么...
分类:
其他好文 时间:
2015-06-04 11:56:01
阅读次数:
113
二分枚举长度改变的长度就行了
#include
#include
#include
using namespace std;
const int INF = 3000000;
const int maxn = 100005;
int n,arr[maxn],arr2[maxn];
bool solve(int x){
memcpy(arr2,arr,sizeof(arr));
...
分类:
其他好文 时间:
2015-06-03 13:41:23
阅读次数:
91