uva-10487-枚举】的更多相关文章

题意: 给出四个数T, a, b, x1,按公式生成序列 xi = (a*xi-1 + b) % 10001 (2 ≤ i ≤ 2T) 给出T和奇数项xi,输出偶数项xi 分析: 最简单的办法就是直接枚举a.b,看看与输入是否相符. #include <cstdio> + ; ; int T, x[maxn]; int main() { //freopen("12169in.txt", "r", stdin); scanf("%d",…
题意较复杂,请参见原题=_=|| 没什么好说的,直接枚举每个排列就好了,然后记录最小带宽,以及对应的最佳排列. STL里的next_permutation函数真是好用. 比较蛋疼的就是题目的输入了.. #include <bits/stdc++.h> using namespace std; ; ], letter[maxn]; ]; int main() { //freopen("in.txt", "r", stdin); && ] !…
题意: 平面上有n个点,现在要把它们全部连通起来.现在有q个套餐,如果购买了第i个套餐,则这个套餐中的点全部连通起来.也可以自己单独地建一条边,费用为两点欧几里得距离的平方.求使所有点连通的最小费用. 分析: 很明显,如果没有这些套餐的话,就是一个裸的MST. 可以枚举套餐的组合情况,然后把套餐中的边的权值置为0,再求MST. 在求MST的过程中,并不需要把所有的边都加进来.只要把原图的MST的那些边和套餐中的边加进来即可. 因为,对于不在原图的MST的边,购买套餐以后,按照权值排序,排在它之前…
从来没有觉得枚举有多费脑子的.但是这道题还是很香的. 思路:就是非常简单的枚举啦.   从一般的枚举开始考虑.一般的做法就是在所有的格子中有两种状态1, 0. 而一共有225个格子,所有一共要枚举的情况就是2255我们大概粗略的计算一下10大约是23则,时间复杂度大概是1085而实际的情况比这个要高.肯定不行. 但是,通过打草稿发现,只要第一行确定了第二行一定是唯一的,同理第三行也是唯一的.这样的话直接枚举第一行就行了呀! #include<cstring> #include<iostr…
只要枚举左右两个子天平砝码的集合,我们就能算出左右两个悬挂点到根悬挂点的距离. 但是题中要求找尽量宽的天平但是不能超过房间的宽度,想不到要怎样记录结果. 参考别人代码,用了一个结构体的vector,保存每个集合合法方案的左右两端最长的距离. #include <cstdio> #include <cstring> #include <algorithm> #include <vector> #include <map> #include <…
#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> #include<queue> #include<map> #include<set> #include<vector> #include<cstdlib> #include<string> #de…
题意:给你n个数,在里面取4个数,可以重复取数,使和不超过M,求能得到的最大的数是多少: 思路:比赛时,和之前的一个题目很像,一直以为是体积为4(最多选择四次)的完全背包,结果并不是,两两求和,然后二分枚举; 完全背包是固定的体积,然后尽量使得装下的重量最大: 这个题目是固定的体积,但求在不超过该重量的情况下能得到的最大值. 至于为啥不是完全背包到现在还找到一个反例,以后再修改: 不过看到一共选择四次的时候,就应该想到是暴力... 比较相似的一个题目,12年的省赛题目:http://acm.sd…
10465 - Homer Simpson Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=114&page=show_problem&problem=1406 这数据量..枚举绝对是最快的方式了. 完整代码: /*0.025s*/ #include<bits/stdc++.h> using namesp…
题目链接:uva 11825 题意: 你是一个黑客,侵入了n台计算机(每台计算机有同样的n种服务),对每台计算机,你能够选择终止一项服务,则他与其相邻的这项服务都终止.你的目标是让很多其它的服务瘫痪(没有计算机有该项服务). 思路:(见大白70页,我的方程与大白不同) 把n个集合P1.P2.Pn分成尽量多的组,使得每组中全部集合的并集等于全集,这里的集合Pi是计算机i及其相邻计算机的集合,用cover[i]表示若干Pi的集合S中全部集合的并集,dp[s]表示子集s最多能够分成多少组,则 假设co…
题目链接:uva 1560 - Extended Lights Out 题目大意:给定一个5∗6的矩阵,每一个位置上有一个灯和开关,初始矩阵表示灯的亮暗情况,假设按了这个位置的开关,将会导致周围包含自己位置的灯状态变换.求一个按开关位置,保证全部灯都灭掉. 解题思路: 枚举,枚举第一行的状态,然后递推出后面四行的状态. 高斯消元,对于每一个位置对定变量,这样列出30个方程求解. C++ 枚举 #include <cstdio> #include <cstring> #include…