1. 从 4 个数列中选择的话总共有 n4 种情况,所以全都判断一遍不可行。不过将它们对半分成 AB 和 CD 再考虑,就可以快速解决了。从两个数列中选择的话只有 n2 种组合,所以可以进行枚举。先从 A、B中取出 a、b 后,为了使总和为 0 则需要从 C、D中取出 c+d ...
分类:
其他好文 时间:
2019-05-13 22:43:28
阅读次数:
65
传送门:https://vjudge.net/problem/POJ-3977 题意:给你n数(n<=35),从中选出一个非空子集,使得这个子集的所有元素的值的和的绝对值最小,如果有多组数据满足的话,选择子集元素最少的那个。 这题是从挑战程序设计竞赛来的。就是折半枚举。也就是我先分别枚举前面一半的选 ...
分类:
其他好文 时间:
2019-05-11 23:10:41
阅读次数:
134
A.数学等式 数据比较小,可以暴力+折半枚举。 #include<bits/stdc++.h> #define ll long long #define rep(i,a,b) for(int i=a;i<=b;i++) using namespace std; const int maxn=2000 ...
分类:
移动开发 时间:
2019-03-30 10:52:52
阅读次数:
247
给定A,B,C,D四个集合,每个集合有n个数,一个元组t={a,b,c,d},其中a,b,c,d分别属于ABCD,且a+b+c+d=0 求这样的元组有多少个 1<=n<=4000 |ai,bi,ci,di|<2^28 分析: 暴力枚举n^4显然行不通,n^3也不可 我们可以先n^2计算出a+b的所有 ...
分类:
其他好文 时间:
2019-01-13 16:13:46
阅读次数:
181
题意 给定一个包含$n$个数的序列$a$,在其中任选若干个数,使得他们的和对$m$取模后最大。($n\leq 35$) 题解 显然,$2^n$的暴枚是不现实的...,于是我们想到了折半枚举,分成两部分暴枚,然后考虑合并,合并的时候用two pointers思想扫一遍就行了。 其实这是一道折半枚举+T ...
分类:
其他好文 时间:
2018-10-16 21:59:40
阅读次数:
237
飞翔 题意:给你一个含有n(n<=1000)个数的数列,问这个数列中是否存在四个不同的数a,b,c,d,使a+b+c=d;若存在则输出最大的d 思路:子集最多有1000C4*4个,时限只有一秒。折半枚举有些讲究,以前折半都是在集合上折半,这次是在等式上。将等式变化为 a + b = d – c,预先 ...
分类:
其他好文 时间:
2018-05-16 20:51:17
阅读次数:
171
题意 n个物品,背包容量w,问共有多少种放法(n≤30) 分析 折半枚举即可 题意 x<=n y<=n x%y>=k 输入n ,k 问有多少对x y满足条件(n 取到10^5) 分析 从k+1枚举y,记录下每个y的x的数量即可 x<=n y<=n x%y>=k 输入n ,k 问有多少对x y满足条件 ...
分类:
其他好文 时间:
2018-03-27 23:54:06
阅读次数:
199
Description Consider equations having the following form: a1x13+ a2x23+ a3x33+ a4x43+ a5x53=0 The coefficients are given integers from the interval [- ...
分类:
其他好文 时间:
2018-02-25 20:47:03
阅读次数:
316
题目链接:Prime Gift 题意: 给出了n(1<=n<=16)个互不相同的质数pi(2<=pi<=100),现在要求第k大个约数全在所给质数集的数。(保证这个数不超过1e18) 题解: 如果暴力dfs的话肯定超时间,其实给的n数据范围最大是16是一个很奇妙的数(一般折半枚举基本上是这样的数据范 ...
分类:
其他好文 时间:
2018-02-04 21:17:02
阅读次数:
165
URAL 1495 思路: 折半枚举+高精度技巧。 先dfs枚举出小于等于15位的情况。 dp[i]表示余数为i的最小的数。 _dp[i]表示余数为i正好15的数。 然后枚举余数i,把它乘以1e15再模n后得到t,然后找_dp[n-t] 代码: ...
分类:
其他好文 时间:
2018-01-29 20:22:48
阅读次数:
269