CFgym:Digits Permutation(DFS)
来源:互联网 发布:网络舆论论文 编辑:程序博客网 时间:2024/06/05 15:43
题意:给一个数字n,允许调换各数位的位置,但不允许有前导零,问能否组成能被17整除的数。
思路:深搜构造出所有数字即可,优化的地方就是同一个位置的数字枚举一次就行了,避免重复。
# include <bits/stdc++.h>using namespace std;char s[20], t[20], len;bool flag;int vis[20];bool judge(char *t){ int ans=0; for(int i=0; i<len; ++i) ans = (ans*10+t[i]-'0')%17; return ans == 0;}bool dfs(int cnt){ if(cnt == len) { if(judge(t)) return true; return false; } for(int i=0; i<len; ++i) { if(vis[i] || (cnt==0&&s[i]=='0')) continue; vis[i] = 1; t[cnt] = s[i]; if(dfs(cnt+1)) return true; vis[i] = 0; while(i+1<len&&s[i]==s[i+1]) ++i;//优化。 } return false;}int main(){ flag = false; scanf("%s",s); len = strlen(s); sort(s, s+len); memset(vis, 0, sizeof(vis)); if(dfs(0)) printf("%s\n",t); else puts("-1"); return 0;}
阅读全文
0 0
- CFgym:Digits Permutation(DFS)
- CFgym:Good morning!(dfs)
- CFgym:Sky Tax(DFS序 & 树)
- CFgym:Old Chess Sets(dfs 循环)
- SUG 502: Digits Permutation
- CFgym:Castle(KMP)
- CFGym
- CFGym
- CFGym
- CFGym
- CFGym
- HNU Joke with permutation (深搜dfs)
- CFgym:Database(字符串处理)
- CFgym:Palindromization(字符串Hash)
- CFgym:Hidden Anagrams(Hash)
- Light oj 1060 - nth Permutation(dfs 计数)
- HDU 6044 Limited Permutation dfs + 组合数(读入挂)
- CFgym:Bonuses and Teleports(贪心)
- C# 如何在编译时将 dll 复制到 bin\Release 目录下
- Unity3d设计模式之单例模式
- Datagrid里面如何捕获前一页下一页最后页最前页的事件?
- 深入理解JavaScript系列(44):设计模式之桥接模式
- Openssh移植到Android系统的步骤
- CFgym:Digits Permutation(DFS)
- Repeater中OnItemDataBound使用方式
- java 反射的理解和使用
- Android之二维码生成与识别 读取相册
- 深入理解JavaScript系列(45):代码复用模式(避免篇)
- matlab调用java代码
- 对象分割--Instance-sensitive Fully Convolutional Networks
- 算法相关文章索引(3)
- win7,win8个人用户如何防御勒索病毒(Wanna Decryptor)?