枚举排列
ZeroLH00
这个作者很懒,什么都没留下…
展开
-
UVA 11205 The broken pedometer
UVA 11205 The broken pedometer题目大意:给出几行数字组合,求出至少取几列可以分辨出不同行解题思路:刚刚开始学子集生成,方法比较笨,位向量法生成子集,去二进制数,然后排序,求相邻的数是否都不相同#include <stdio.h>#include <iostream>#include <string.h>#include <math.h>using namespa原创 2016-08-17 23:43:31 · 334 阅读 · 0 评论 -
UVA 11134 Fabled Rooks
题目大意:给出n行n列的表,输入4个数字代表点的范围,范围是一个矩形,前俩个数字代表矩形左上角坐标,后俩个数字代表右下角坐标,要求取的点所在行和所在列与其他点不相交 解题思路:因为行和列不冲突,所以将每个点分为行和列单独讨论,将得到的每个点范围按最大值从小到达排列,然后贪心处理#include <iostream>#include <cstring>#include <algorithm>u原创 2017-09-15 16:03:20 · 287 阅读 · 0 评论 -
UVA 1152 4 Values whose Sum is 0
题目大意:给出4个数组,在4个数组中各取一个值相加,求出结果等于0的组合个数 解题思路:枚举1 2俩组相加的结果并保存到b,然后枚举3 4俩组相加结果,用二分搜索是否存在b中,若存在则个数加1#include <cstdio>#include <iostream>#include <algorithm>using namespace std;int n, m;int a[4][10000原创 2017-09-15 14:37:45 · 275 阅读 · 0 评论 -
UVA 714 Copying Books
题目大意:输入m和k,要把m个正整数划分成k个连续的非空序列,要求全部划分中的最大值尽量小 解题思路:用二分法找每个划分序列的最大值,使之不能再减少即可#include <iostream>#include <cstring>using namespace std;int cou, cut;long long int a[1000];int c[1000];bool jud(int m原创 2017-09-22 17:40:39 · 309 阅读 · 0 评论 -
UVA 1605 Building for UN
题目大意:一栋大楼,有h层,每层有w*l大的格子,每个格子可以放一个工作室,有n个国家,每个国家可以有好几个工作室,要求,每个国家都有相邻的位置(上下层相邻也算)解题思路:固定只要2层,每层都是n*n个格子,第一层每行都为国家的枚举,第二层每列都为国家的枚举,这样国家与国家间肯定会有相邻点#include <cstdio>#include <iostream>using namespace st原创 2017-09-13 16:13:23 · 264 阅读 · 0 评论 -
UVA 120 Stacks of Flapjacks
题目大意:给出一个序列,以从第一个数到第x个数全部颠倒的方式将这个序列从小到大排序解题思路:把当前最大的放到最底端,依次循环#include <cstdio>#include <iostream>using namespace std;#define maxn 1000int a[maxn];int cou;void change(int mx, int p) { int re;原创 2017-09-13 15:41:00 · 248 阅读 · 0 评论 -
UVA 129 Krypton Factor
题目大意:如果又一个字符串包含俩个相邻重复子串,则称之为容易的串,反之则是困难的串,给出m和n,找最多出现前n个字母组成的困难串表字典序排列的第m个困难串 解题思路:每次加入字母时都与已有字母串进行比较,找是否有相同连续的串,判断前一半是否等于后一半,等于则跳出,不等于则继续#include <cstdio>#include <iostream>using namespace std;int原创 2016-11-16 19:57:46 · 372 阅读 · 0 评论 -
UVA 725 Division
题目大意:给一个数字n,用0~9组合成abcde/fgkij=n的式子,0~9都只能用一次,0可以前置 解题思路:枚举fgkij的所有情况,自然得出abcde,判断是否符合条件#include <cstdio>#include <cstring>#include <iostream>using namespace std;int main() { int n; cin >>原创 2016-11-13 15:07:16 · 258 阅读 · 0 评论 -
UVA 524 Prime Ring Problem
题目大意:输入整数n,将整数1~n组成一个环,使得相邻俩数之和是素数 解题思路:先列出素数表,然后回溯查看是否满足条件#include <cstdio>#include <iostream>#include <cstring>#include <math.h>using namespace std;int n;int flag[20];int num[20];int flag2[5原创 2016-11-16 17:22:18 · 303 阅读 · 0 评论 -
UVA 10976 Fractions Again?!
题目大意:输入正整数k,找到所有的正整数x>=y,使得1/k=1/x + 1/y 解题思路:x枚举k~2k,当能计算得到y时保存数据#include <cstdio>#include <iostream>using namespace std;int main() { long long int n; long long int g1[1000], g2[1000];原创 2016-11-16 15:44:20 · 263 阅读 · 0 评论 -
UVA 11059 Maximum Product
题目大意:给一个数组,找出数组最大的连续子集乘积 解题思路:枚举全部起点和终点#include <cstdio>#include <iostream>using namespace std;int main() { long long int number[100]; int n; int x = 0; while(scanf("%d", &n) != EO原创 2016-11-15 23:02:28 · 630 阅读 · 0 评论 -
UVA 729 The Hamming Distance Problem
UVA 729 The Hamming Distance Problem题目大意:给出数字个数和1的个数,输出全部排列解题思路:next_permutation调用#include <stdio.h>#include <iostream>#include <algorithm>#include <string.h>using namespace std;char str[100];int原创 2016-08-19 19:38:36 · 279 阅读 · 0 评论 -
UVA 146 ID Codes
UVA 146 ID Codes题目大意:给出一个字符串,输出一比这字符串大的最小的下一字符串解题思路:next_permutation函数的调用#include <iostream>#include <string.h>#include <iostream>#include <algorithm>using namespace std;char str[1000];int main()原创 2016-08-18 23:12:41 · 563 阅读 · 0 评论 -
UVA 10098 Generating Fast
UVA 10098 Generating Fast题目大意:给出字符串,输出这个字符串的全部排列,无重复解题思路:qsort后用next_permutation输出#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;char str[100];int原创 2016-08-18 23:12:07 · 287 阅读 · 0 评论 -
UVA 131 The Psychic Poker Player
UVA 131 The Psychic Poker Player题目大意:手牌五张 排堆五张,超能力者可以看到这10张牌,可以弃掉x张牌摸x张牌,问能凑出的最大的牌 比较规则 比较规则如下:(按优先级排序)1.straight-flush:同花顺,牌面为T(10) - A2.four-of-a-kind:四条,牌面有4个相同的值;3.full-house:牌面有3个相同值,剩下2个也相同值;4.原创 2016-08-18 18:30:22 · 337 阅读 · 0 评论 -
UVA 10167 Birthday Cake
UVA 10167 Birthday Cake题目大意:给出几个坐标点,要求Ax+By = 0(-100 <= A/B <= 100)能将坐标点对半分解题思路:枚举全部情况,直到能够分开为止#include <stdio.h>#include <iostream>using namespace std;int n;int point[110][2];int num;void pro()原创 2016-08-17 23:45:03 · 277 阅读 · 0 评论 -
UVA 11054 Wine trading in Gergovia
题目大意:给出一组序列,每个数字代表一家店,正数表示需要多少酒,负数表示要卖多少酒,将k的酒从到相邻店需要k个劳动力,最少多少劳动力可以供需平衡 解题思路:遍历序列,将数字清0,得到数字代表清0需要的劳动力和下家店需要增加或者减少的酒,依次相加即可#include <iostream>using namespace std;int n;int a[200000];long long int原创 2017-09-16 15:39:55 · 278 阅读 · 0 评论