枚举、排列
Ziiyan
这个作者很懒,什么都没留下…
展开
-
UVA - 10167 Birthday Cake
题目大意:蛋糕上有 N 个草莓,切一刀使两块蛋糕上的草莓一样多。Ax+By=0 代表切下去的这一刀,输出一组符合的 A 和 B(-500 <= A,B <= 500)。就是求一条过原点的线,使得这条线平分坐标系上的点。解题思路:高中常做的几何题,若点(x0,y0)在线 Ax+By=0 上,那么带入点的坐标会使得 Ax0+By0=0,在上方 Ax0+By0>0,同理下方 <0。知道这个就简单了,AB原创 2016-08-16 23:08:36 · 228 阅读 · 0 评论 -
UVA - 146 ID Codes
题目大意:给出一串字符,将这些字母升序全排列后,求该串字符的下一串,若是最后一串,输出 No Successor解题思路:从后往前扫,碰到第一个 s[i] > s[i-1] 的时候,用 i(包括)后的大于 s[i-1] 当中最小的和 s[i-1] 换位置,然后对 i(包括)后的字母排升序。#include<iostream> #include<cstdio> #include<cstdlib> #i原创 2016-08-16 23:09:00 · 162 阅读 · 0 评论 -
UVA - 10098 Generating Fast
题目大意:给出一串字母,输出它们的全排列。解题思路:枚举排列。小紫 P184 很详细。就喜欢这种耿直的题目。#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> using namespace std; char s[20], ans[20原创 2016-08-16 23:09:22 · 263 阅读 · 0 评论 -
UVA - 729 The Hamming Distance Problem
题目大意:给出长度 N 和 Hamming 距离 H,求所有符合的字符串。符合的个数是 C(N,H)解题思路:其实就是一个长度为 N 的字符串里面有 H 个 1,其余都是 0,求这个字符串的全排列,和UVA - 10098 Generating Fast 一样。#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring原创 2016-08-16 23:11:03 · 252 阅读 · 0 评论 -
UVA - 131 The Psychic Poker Player
题目大意:德州扑克。手上五张牌(无序),桌上五张牌(有序,从上到下抽取,能看见牌面),每次能丢弃手中的一张牌换取桌上最上面的一张,保持手中牌数五张。问能组成最大的牌型。解题思路: 德州扑克的规则(大到小) 同花顺(straight-flush) 同一花色的五张连牌 炸弹(four-of-a-kind) 四张点数相同 葫芦(full-house) 三条+一对 同花(原创 2016-08-17 22:53:02 · 289 阅读 · 0 评论 -
UVA - 110 Meta-Loopless Sorts
题目大意:模仿 Pascal 输出 n 个数字比较大小的过程。解题思路:全排列,向上层序列从后往前插入新元素,如给出 n=3,则最开始为 a,第一层 b,插入为 ab,到第二层 c,为 abc,向前得到 acb,cab,然后返回上一层 b,向前移动为 ba,此基础上第二层bac,bca,cba,返回上一层 b,结束,回到 a,结束。#include<iostream> #include<cstdio原创 2016-08-19 00:21:10 · 188 阅读 · 0 评论 -
UVA - 11205 The broken pedometer (子集生成)
侵删。uva 11205 The Broken Pedometer(经典的子集生成题目,在此总结了三种子集生成的方法~) by charkj_z 出处: http://blog.csdn.net/u01338239 题目大意:给出 N 个长度为 P 由 0/1 组成的字符串,问至少几位能把这些字符串区分开。解题思路:子集生成。 增量构造法: Memory: 0 KB Ti原创 2016-08-17 22:59:31 · 265 阅读 · 0 评论