1.DFS

 #include<cmath>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
char str[], ans[];
int vis[], flag;
bool cmp(char a, char b){return a > b;}
void dfs(int dep, int target, int len){
if(dep == ){
int sum = ;
for(int i = ; i <= ; i ++)
sum += (int)pow(ans[i-]-'A'+., i)*(int)pow(-., i+);
if(sum == target){
flag = ;
printf("%s\n", ans);
}
return ;
}
for(int i = ; i < len; i ++){
if(!vis[i]){
vis[i] = ;
ans[dep] = str[i];
dfs(dep+, target, len);
if(flag) return;
vis[i] = ;
}
}
}
int main(){
int target;
freopen("in.c", "r", stdin);
while(~scanf("%d%s", &target, str) && strcmp(str, "END") && target){
flag = ;
memset(vis, , sizeof(vis));
int len = strlen(str);
sort(str, str+len, cmp);
dfs(, target, len);
if(!flag) printf("no solution\n");
memset(str, , sizeof(str));
}
return ;
}

2,二进制枚举

 #include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std;
int main(){
int n, a[];
string str;
freopen("in.c", "r", stdin);
while(cin >> n >> str && str != "END" && n){
char ans[] = "A";
int flag = ;
for(int i = ;i < ( << str.size()); i ++){
int cnt = , sum = ;
for(int j = ; j < str.size(); j ++){
if(i & ( << j)) a[cnt++] = j;
}
if(cnt == ){
char tmp[];
for(int i = ; i < ; i ++) tmp[i] = str[a[i]];
sort(tmp, tmp+);
do{
int sum = ;
for(int i = ; i <= ; i ++)
sum += (int)pow(-., i+)*(int)pow(tmp[i-]-'A'+., i);
if(sum == n){
flag = ;
if(strcmp(ans, tmp) < ) strcpy(ans, tmp);
}
}while(next_permutation(tmp, tmp+cnt));
}
}
if(flag) printf("%s\n", ans);
else cout << "no solution" << endl;
}
return ;
}

HDOJ -- 1015的更多相关文章

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

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

  2. HDOJ(HDU).1016 Prime Ring Problem (DFS)

    HDOJ(HDU).1016 Prime Ring Problem (DFS) [从零开始DFS(3)] 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架 ...

  3. HDOJ/HDU 1015 Safecracker(深搜)

    Problem Description === Op tech briefing, 2002/11/02 06:42 CST === "The item is locked in a Kle ...

  4. HDOJ/HDU 1015 Safecracker(枚举、暴力)

    Problem Description === Op tech briefing, 2002/11/02 06:42 CST === "The item is locked in a Kle ...

  5. 杭电hdoj题目分类

    HDOJ 题目分类 //分类不是绝对的 //"*" 表示好题,需要多次回味 //"?"表示结论是正确的,但还停留在模块阶 段,需要理解,证明. //简单题看到就 ...

  6. HDOJ 题目分类

    HDOJ 题目分类 /* * 一:简单题 */ 1000:    入门用:1001:    用高斯求和公式要防溢出1004:1012:1013:    对9取余好了1017:1021:1027:   ...

  7. HDOJ(HDU).2266 How Many Equations Can You Find (DFS)

    HDOJ(HDU).2266 How Many Equations Can You Find (DFS) [从零开始DFS(9)] 点我挑战题目 从零开始DFS HDOJ.1342 Lotto [从零 ...

  8. HDOJ(HDU).1045 Fire Net (DFS)

    HDOJ(HDU).1045 Fire Net [从零开始DFS(7)] 点我挑战题目 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架/双重DFS HD ...

  9. HDOJ(HDU).1258 Sum It Up (DFS)

    HDOJ(HDU).1258 Sum It Up (DFS) [从零开始DFS(6)] 点我挑战题目 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架/双 ...

随机推荐

  1. OAuth2.0授权和SSO授权

    一. OAuth2.0授权和SSO授 1. OAuth2.0 --> 网页 --> 当前程序内授权 --> 输入账号密码 --> (自己需要获取到令牌, 自己处理逻辑) 授权成 ...

  2. Codevs 1074 食物链 2001年NOI全国竞赛

    1074 食物链 2001年NOI全国竞赛 时间限制: 3 s 空间限制: 64000 KB 题目等级 : 钻石 Diamond 传送门 题目描述 Description 动物王国中有三类动物 A,B ...

  3. 九度OJ 1201 二叉排序树

    题目地址:http://ac.jobdu.com/problem.php?pid=1201 题目描述: 输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历. 输入: 输入第一行包括一个整数n( ...

  4. Linux Master/Baremetal Remote 配置下的裸机调试

    为了实现在ZC702开发板上的两颗Cortex-A9处理器上实现Linux Master/Baremetal Remote 配置,并对Remote端的裸机程序进行调试,需要注意的几点如下: 一.建立p ...

  5. linux-信号。

    信号 信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的. 信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到 ...

  6. properties文件的继承(套用)关系

    现项目中有多个配置文件分布于/props____def.properties____/env_______def.propertiess_______/dev_______def.properties ...

  7. css3实现垂直居中,水平

    .box{ text-align:center; } .content{ margin-top:50%; transform:translateY(-50%);/**沿Y轴移动**/ } <di ...

  8. [转载]如何重装Grub,使其可以引导双系统

    引言: GRUB是一个多重操作系统的启动管理器.用来引导不同的系统,如windows,Linux.一般来说要先装Windows,后装Linux,这样grub才能生效(grub存在于linux的安装中) ...

  9. Mysql锁机制和事务控制

    如何加锁 锁定表的语法:    LOCK TABLES    tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE}    [, tbl_n ...

  10. word 2013 没有控件菜单怎么办,添加控件菜单

    方法/步骤   打开word软件,然后点击菜单栏中最左边的“文件”菜单项,如下图红色方框所示 2 点击文件后,就打开word的设置对话框,然后在左边的设置列表中点击“自定义功能区”,打开自定义功能区设 ...