题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1015

这都能过……

 #include <algorithm>
#include <iostream>
#include <iomanip>
#include <cstring>
#include <climits>
#include <complex>
#include <fstream>
#include <cassert>
#include <cstdio>
#include <bitset>
#include <vector>
#include <deque>
#include <queue>
#include <stack>
#include <ctime>
#include <set>
#include <map>
#include <cmath> using namespace std; typedef long long ll;
const ll maxn = ;
ll aim;
ll n;
char str[maxn];
char ans[maxn];
char wtf[maxn];
bool flag; ll quickmul(ll x, ll n) {
ll ans = ;
ll t = x;
while(n) {
if(n & ) {
ans = (ans * t);
}
t = t * t;
n >>= ;
}
return ans;
} int main() {
// freopen("in", "r", stdin);
// freopen("out", "w", stdout);
while(~scanf("%I64d %s", &aim, str)) {
if(aim == && strcmp("END", str) == ) break;
memset(wtf, , sizeof(wtf));
n = strlen(str);
ll nn = << n;
flag = ;
sort(str, str+n, greater<char>());
for(ll i = ; i < nn; i++) {
ll cnt = ;
memset(ans, , sizeof(ans));
for(ll j = ; j < n; j++) {
if(( << j) & i) {
ans[cnt++] = str[j];
}
}
if(cnt != ) continue;
sort(ans, ans+cnt);
do {
ll tmp = ans[] - 'A' + ;
for(ll k = ; k < cnt; k++) {
tmp += quickmul(-, k) * quickmul(ans[k]-'A'+, k+);
}
if(tmp == aim) {
flag = ;
if(strcmp(wtf, ans) < ) {
strcpy(wtf, ans);
}
}
}while(next_permutation(ans, ans+cnt));
}
if(!flag) printf("no solution\n");
else printf("%s\n", wtf);
}
return ;
}

[HDOJ1015]Safecracker(DFS, 组合数学)的更多相关文章

  1. HDOJ-1015 Safecracker(DFS)

    http://acm.hdu.edu.cn/showproblem.php?pid=1015 题意:给出一个目标值target和一个由大写字母组成的字符串 A-Z分别对应权值1-26 要求从给出的字符 ...

  2. HDOJ(HDU).1015 Safecracker (DFS)

    HDOJ(HDU).1015 Safecracker [从零开始DFS(2)] 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架/双重DFS HDOJ.1 ...

  3. HDU 5379 Mahjong tree dfs+组合数学

    题意:给你一棵树来分配号码,要求是兄弟节点连续并且每一棵子树连续. 思路:因为要求兄弟和子树都是连续的,所以自己打下草稿就可以发现如果一个节点有3个或3个以上的非叶子结点,那么就无论如何也不能达到目的 ...

  4. 洛谷——P3914 染色计数

    P3914 染色计数 题目描述 有一颗NN个节点的树,节点用1,2,\cdots,N1,2,⋯,N编号.你要给它染色,使得相邻节点的颜色不同.有MM种颜色,用1,2,\cdots,M1,2,⋯,M编号 ...

  5. 组合数学(全排列)+DFS CSU 1563 Lexicography

    题目传送门 /* 题意:求第K个全排列 组合数学:首先,使用next_permutation 函数会超时,思路应该转变, 摘抄网上的解法如下: 假设第一位是a,不论a是什么数,axxxxxxxx一共有 ...

  6. HDU 1015 Safecracker【数值型DFS】

    Safecracker Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  7. hdu - 1010 Tempter of the Bone (dfs+奇偶性剪枝) && hdu-1015 Safecracker(简单搜索)

    http://acm.hdu.edu.cn/showproblem.php?pid=1010 这题就是问能不能在t时刻走到门口,不能用bfs的原因大概是可能不一定是最短路路径吧. 但是这题要过除了细心 ...

  8. HDU 1015 Safecracker (DFS)

    题意:给一个数字n(n<=12000000)和一个字符串s(s<=17),字符串的全是有大写字母组成,字母的大小按照字母表的顺序,比如(A=1,B=2,......Z=26),从该字符串中 ...

  9. hdu 1015(DFS)

    Safecracker Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

随机推荐

  1. 【HDOJ】【3480】Division

    DP/四边形不等式 要求将一个可重集S分成M个子集,求子集的极差的平方和最小是多少…… 首先我们先将这N个数排序,容易想到每个自己都对应着这个有序数组中的一段……而不会是互相穿插着= =因为交换一下明 ...

  2. ffmpeg iOS 编译

    编译模拟器版本1 到https://github.com/yuvi/gas-preprocessor下载gas-preprocessor.p并拷贝到/usr/sbin目录中2 下载ffmpeg源码.h ...

  3. windows 7 下快速搭建php环境 windows7+IIS7+php

    1.       安装IIS v7.0 控制面板-程序和功能-打开或关闭Windows 功能 测试是否成功安装IIS v7.0,在浏览器输入:http://localhost/ 或者http://12 ...

  4. UML架构(转载)

    任何真正的世界系统是由不同的用户使用.用户可以是开发人员,测试人员,商务人士,分析师和等等.所以在设计一个系统的体系结构是用不同的角度心态.最重要的部分是从不同的观看者的角度来看,以可视化的系统.我们 ...

  5. My97日历控件常用功能记录

    My97相信大家都不陌生,应该是我所见过的最强大的一个日历控件了,最近的项目中也比较多地用到了此控件,而且项目中经常会有不同时间范围的需求,在此列出一些比较常用的日期范围格式的设置,尽管在My97的官 ...

  6. BZOJ 1087状态压缩DP

    状态压缩DP真心不会写,参考了别人的写法. 先预处理出合理状态, 我们用二进制表示可以放棋子的状态,DP[I][J][K]:表示现在处理到第I行,J:表示第I行的状态,K表示现在为止一共放的棋子数量. ...

  7. 自己写简单CoreDataManager封装对CoreData操作

    关于CoreData的介绍太多,网上一搜大把全是,这里不介绍CoreData,直接上代码,注释写的很详细,应该很容易理解,暂时现做简单的增删该查,后面有时间再做修改完善. CoreDataManage ...

  8. SQL TRY CATCH

    begin try select 1/0end trybegin catch select error_number() as 'number', error_line() as 'line', er ...

  9. Sqli-labs less 32

    Less-32 利用上述的原理,我们可以进行尝试payload为: http://127.0.0.1/sqli-labs/Less-32/?id=-1%df%27union%20select%201, ...

  10. redis rdb

    http://blog.chinaunix.net/uid-1757778-id-3977331.html