2018/9/17~2018/9/23  week 220

push button I

题目链接:https://hihocoder.com/contest/hiho220/problem/1

有N个按钮,每个按钮都需要被按下一次,一次可以同时按下几个按钮,输出所有按下的方案。但是同时按下12, 和同时按下21是一样的。所以不能有这种同时的重复。

Sample Input

3

Sample Output

1-2-3
1-23
1-3-2
12-3
123
13-2
2-1-3
2-13
2-3-1
23-1
3-1-2
3-12
3-2-1

题解: 直接dfs。 看了题解dfs的方法。

(1)每次选举一个比同组最后一个数字大的数, 避免(3-12 和 3-21) 这种重复的情况

(2)开始一个新的组

 #include <iostream>
#include <cstdio>
#include <cstdlib>
#include <string>
#include <cstring>
#include <set> using namespace std; int n;
int visit[];
set<string> st;
void dfs(int last, int cnt, string str) {
//printf("print debug, str: %s \n", str.c_str());
if (cnt == n) {
// cout << str << endl;
st.insert(str);
return;
}
for (int i = ; i <= n; ++i) {
if (visit[i] == true) { continue; }
if (i > last) {
visit[i] = true;
char c = i + '';
dfs(i, cnt+, str + c);
visit[i] = false;
}
}
if (str.back() != '-') {
dfs(-, cnt, (str + "-"));
}
} int main() {
scanf("%d", &n);
memset(visit, , sizeof(visit));
for (int i = ; i <= n; ++i) {
visit[i] = true;
string str = to_string(i);
dfs(i, , str);
visit[i] = false;
}
for (auto iter = st.begin(); iter != st.end(); ++iter) {
cout << *iter << endl;
} return ;
}

【hihoCoder】每周一题(从week 220开始)的更多相关文章

  1. [问题2014S12] 复旦高等代数II(13级)每周一题(第十二教学周)

    [问题2014S12]  设 \(A,B\) 都是 \(n\) 阶半正定实对称阵, 证明: \(AB\) 的所有特征值都是非负实数. 进一步, 若 \(A,B\) 都是正定实对称阵, 证明: \(AB ...

  2. 复旦高等代数II(18级)每周一题

    本学期将继续进行高等代数每周一题的活动.计划从第一教学周开始,到第十五教学周结束,每周的周末公布一道思考题(预计15道),供大家思考和解答.每周一题将通过“高等代数官方博客”(以博文的形式)和“高等代 ...

  3. 复旦高等代数 II(17级)每周一题

    本学期将继续进行高等代数每周一题的活动.计划从第一教学周开始,到第十六教学周为止(根据法定节假日安排,中间个别周会适当地停止),每周的周末将公布1道思考题(共16道),供大家思考和解答.每周一题通过“ ...

  4. 复旦高等代数 I(17级)每周一题

    本学期将继续进行高等代数每周一题的活动.计划从第二教学周开始,到第十六教学周为止(根据法定节假日安排,中间个别周会适当地停止),每周的周末将公布1-2道思考题,供大家思考和解答.每周一题通过“谢启鸿高 ...

  5. 复旦高等代数II(16级)每周一题

    每周一题的说明 一.本学期高代II的每周一题面向16级的同学,将定期更新(一般每周的周末公布下一周的题目); 二.欢迎16级的同学通过微信或书面方式提供解答图片或纸质文件给我,优秀的解答可以分享给大家 ...

  6. CDOJ 1277 智商杯考试 每周一题 div2 二分+数学

    智商杯考试 题目连接: http://acm.uestc.edu.cn/#/problem/show/1277 Description 你是一个挂科选手. 你现在正在考试,你很方. 你参加的考试叫做智 ...

  7. 复旦高等代数I(19级)每周一题

    本学期的高等代数每周一题活动计划从第2教学周开始,到第15教学周结束,每周的周末公布一道思考题(共14道,思考题一般与下周授课内容密切相关),供大家思考和解答.每周一题将通过“高等代数官方博客”(以博 ...

  8. 复旦高等代数 I(16级)每周一题

    每周一题的说明 一.本学期高代I的每周一题面向16级的同学,将定期更新(一般每周的周末公布下一周的题目); 二.欢迎16级的同学通过微信或书面方式提供解答图片或纸质文件给我,优秀的解答可以分享给大家: ...

  9. Java实现UVA10131越大越聪明(蓝桥杯每周一题)

    10131越大越聪明(蓝桥杯每周一题) [问题描述] 一些人认为,大象的体型越大,脑子越聪明.为了反驳这一错误观点,你想要分析一组大象的数据,找出尽量 多的大象组成一个体重严格递增但 IQ 严格递减的 ...

随机推荐

  1. 如何解决“ VMware Workstation 不可恢复错误: (vcpu-0) vcpu-0:VERIFY vmcore/vmm/main/cpuid.c:386 bugNr=1036521”

    第一次装虚拟机,装centos7遇到的坑: 1. 出现 “VMware Workstation 不可恢复错误: (vcpu-0) vcpu-0:VERIFY vmcore/vmm/main/cpuid ...

  2. 2019牛客暑期多校训练营(第三场)I Median

    题意:给出n-2的中位数序列b,b[i]代表原序列中(a[i],a[i+1],a[i+2])的中位数,求a. 解法:比赛的时候没做出来,赛后看题解的.解法跟网上各位大佬一样:首先要证明其实原序列a中的 ...

  3. ivew-admin 导入excel

    1.使用上传组件 <Upload ref="upload" name="importData" action="/api/device/impo ...

  4. python 发送请求

    data = {"a":1,"b":2} urllib2 get: get_data = urllib.urlencode(data) req_url = UR ...

  5. Spring data jpa persistence .xml 配置文件

    <?xml version="1.0" encoding="UTF-8"?><persistence xmlns="http://j ...

  6. 【架构】Linux的架构(architecture)

    最内层是硬件,最外层是用户常用的应用,比如说firefox浏览器,evolution查看邮件,一个计算流体模型等等.硬件是物质基础,而应用提供服务.但在两者之间,还要经过一番周折. 还记得Linux启 ...

  7. Hibernate 单项多对1

    自己理解: 单向1对多. 一个客户可以发出多个订单.但是一个订单只属于一个客户. 写对象的时候.在多的那个类对象把1的作为自己的一个属性. 写配置文件 <many-to-one name=1的属 ...

  8. delphi xe 正则表达式

    Delphi XE 中自带了正则表达式的处理类TRegEx,包含在单元 RegularExpressions,使用时要uses 一下.      TRegEx 是一个结构 ,使用时不用释放.他内部还是 ...

  9. objective-c: Functions and static keyword

    Functions function is a concept for C programming language, objective-c is entirely relies on C. To ...

  10. 小程序 ios 10.1.x 白屏问题

    遇到这个问题有点莫名其妙只有IOS10.1.x显示白屏 解决过程很坎坷,一开始以为是调试基础库的问题,改成最新的2.9.2版本. 用这个创建新的项目,把之前的项目内容放到新建项目内, 发现还是不行,后 ...