题意:选取k种面额的邮票,总数是h,要求组合出来的连续数最大

枚举,网上看到一个更快的等价类划分,留着学等价类划分的思路

#include<stdio.h>
#include<iostream>
#include<sstream>
#include<queue>
#include<map>
#include<memory.h>
#include <math.h>
#include<time.h>
#include <stdlib.h>
#include <algorithm>
using namespace std;
const int N = 200;
int res[N], stamp[N], m[N];
int h, k;
int final = -1;
int vis[N];
void dfs(int cur, int n, int sum)
{
if(cur == h)
{
vis[sum] = 1;
return;
}
vis[sum] = 1;
for(int i = 0; i <= n; i++)
dfs(cur + 1, n, sum + stamp[i]);
}
void search(int cur)
{
if(cur == k)
{
if(m[cur - 1] > final)
{
final = m[cur - 1];
memcpy(res, stamp, sizeof(res));
}
return;
}
for(int i = stamp[cur-1] + 1; i <= m[cur - 1] + 1; i++)
{
memset(vis, 0, sizeof(vis));
stamp[cur] = i;
dfs(0, cur, 0);
int j = 1;
int num = 0;
while (vis[j++])
num++;
m[cur] = num;
search(cur + 1);
} }
int main()
{
freopen("d:\\1.txt", "r", stdin);
while (cin >> h >> k && h && k)
{
m[0] = h;
stamp[0] = 1;
final = -1;
search(1);
for(int i = 0; i < k;i++)
{
printf("%3d",res[i]);
}
printf(" ->%3d\n",final);
}
return 0;
}

  

uva-165-枚举的更多相关文章

  1. UVa 12169 (枚举+扩展欧几里得) Disgruntled Judge

    题意: 给出四个数T, a, b, x1,按公式生成序列 xi = (a*xi-1 + b) % 10001 (2 ≤ i ≤ 2T) 给出T和奇数项xi,输出偶数项xi 分析: 最简单的办法就是直接 ...

  2. uva 165

    回溯  参考了一下别人的解法  1 必须存在  再枚举下一个数字的时候  从当前可取到的最小数字加一枚举到当前可取到的最大数字加一 /********************************* ...

  3. UVa 140 (枚举排列) Bandwidth

    题意较复杂,请参见原题=_=|| 没什么好说的,直接枚举每个排列就好了,然后记录最小带宽,以及对应的最佳排列. STL里的next_permutation函数真是好用. 比较蛋疼的就是题目的输入了.. ...

  4. UVa 1151 (枚举 + MST) Buy or Build

    题意: 平面上有n个点,现在要把它们全部连通起来.现在有q个套餐,如果购买了第i个套餐,则这个套餐中的点全部连通起来.也可以自己单独地建一条边,费用为两点欧几里得距离的平方.求使所有点连通的最小费用. ...

  5. uva 165 Stamps

    题意: 现有k种邮票面额, 一封信上最多贴h张邮票. 求能贴出的最大连续区间,即[1, max_value]这个区间内的所有面额都能贴出来. 并输出k种面额, h + k <= 9. 思路: 这 ...

  6. Even Parity UVA - 11464 (枚举)

    从来没有觉得枚举有多费脑子的.但是这道题还是很香的. 思路:就是非常简单的枚举啦.   从一般的枚举开始考虑.一般的做法就是在所有的格子中有两种状态1, 0. 而一共有225个格子,所有一共要枚举的情 ...

  7. UVa 1354 枚举子集 Mobile Computing

    只要枚举左右两个子天平砝码的集合,我们就能算出左右两个悬挂点到根悬挂点的距离. 但是题中要求找尽量宽的天平但是不能超过房间的宽度,想不到要怎样记录结果. 参考别人代码,用了一个结构体的vector,保 ...

  8. UVA 165 Stamps (DFS深搜回溯)

     Stamps  The government of Nova Mareterrania requires that various legal documents have stamps attac ...

  9. Uva 11754(枚举+中国剩余定理)

    #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #inclu ...

  10. Java设计模式学习笔记,一:单例模式

    开始学习Java的设计模式,因为做了很多年C语言,所以语言基础的学习很快,但是面向过程向面向对象的编程思想的转变还是需要耗费很多的代码量的.所有希望通过设计模式的学习,能更深入的学习. 把学习过程中的 ...

随机推荐

  1. Laravel学习之旅(二)

    控制器 一.怎么编写控制器? 1.控制器文件存放路径:app\Http\Controllers: 2.命名规范如:TestController.php 3.完整的控制器例子如下: <?php n ...

  2. test20181006 石头剪刀布

    题意 分析 考场做法同题解一样. std代码. #include<bits/stdc++.h> using namespace std; template <typename T&g ...

  3. $.ajax()方法详解--极快瑞中的阿贾克斯函数

    ajax() 函数和那些abs()函数 sin()这些函数都是底层实现好了,封装好了,可以直接拿来用的 使用者只需要传入参数,然后就可以得到相应的结果 $.ajax({name:value, name ...

  4. net web service 参数类型

    因为Web Services的执行是建立在XML架构之上的,所以它能够支持丰富的数据类型. 下表列出了使用SOAP协议时Web Services支持的数据类型:  类 型 含 义 基础类型 也即标准基 ...

  5. JVM 详解

    概念 数据类型 Java 虚拟机中,数据类型可以分为两类:基本类型和引用类型.基本类型的变量保存原始值,即:他代表的值就是数值本身:而引用类型的变量保存引用值.“引用值”代表了某个对象的引用,而不是对 ...

  6. azkaban:java任务调度系统

    github:https://github.com/azkaban/azkaban 官方网站:https://azkaban.github.io/ 好的介绍文章:http://srcct.com/20 ...

  7. bzoj 4650(洛谷 1117) [Noi2016]优秀的拆分——枚举长度的关键点+后缀数组

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4650 https://www.luogu.org/problemnew/show/P1117 ...

  8. 【appium】根据class_name定位元素

    目前没有尝试成功,等成功后补充 class_name=class可以通过UIAutomatorViewer获得.

  9. CMSIS DSP Lib:RFFT函数的bug

    调用arm_rfft_fast_init_f32之后,还有两个成员需要初始化: arm_rfft_fast_instance_f32::pTwiddleRFFT = twiddleCoef_rfft_ ...

  10. shell打印彩色输出

    字体颜色(8种,3开头) 重置=0,黑色=30,红色=31,绿色=32, 黄色=33,蓝色=34, 洋红=35, 青色=36, 白色=37. 背景颜色(8种,4开头) 重置=0,黑色=40,红色=41 ...