HDOJ1015-Safecracker优化版_safecracker hdoj-程序员宅基地

技术标签: 算法  acm  

纯暴力搜索是可以过的。但要求答案是最大的字典序,显然先排序后搜索可以一遍求出答案后就返回。但新手写回溯会出种种bug,最经典莫过于不知道如何返回而陷入死循环。这里给出一个参考代码:

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<map>
#include<queue>
#include<string>
#include<vector>
#include<deque>
#include<fstream> 
#include<cmath>
#include<functional>
#define ll long long
#define clr(a,v) memset(a,v,sizeof(a))
using namespace std;
const int inf = 0x3f3f3f3f;
using namespace std;
const int N = 30;
int n;
char s[N], str[N];
int target;
int ans[N];
int vis[N];
vector<int> a;
int flag;
void dfs(int cur) {
    
	if (flag)return;
	if (cur == 5) {
    
		int sum = 0;
		for (int i = 1; i <= 5; i++)
			sum += (i & 1 ? 1 : -1)*pow(1.0*ans[i - 1], i);
		if (sum == target)flag = 1;
		return;
	}
	for (int i = 0; i < n; i++) {
    
		if (!vis[i]) {
    
			ans[cur] = a[i];
			vis[i] = 1;
			dfs(cur + 1);
			if (flag)return;
			vis[i] = 0;
		}
	}
}
int main() {
    
	ios::sync_with_stdio(false); cin.tie(0);
	while (cin >> target >> s && target) {
    
		flag = 0;
		clr(vis, 0);
		clr(str, 0);
		while (!a.empty())a.pop_back();
		n = strlen(s);
		for (int i = 0; i < n; i++)a.push_back(s[i] - 'A' + 1);
		sort(a.begin(), a.end(), greater<int>());
		dfs(0);
		if (!flag)cout << "no solution\n";
		else {
    
			for (int i = 0; i < 5; i++)
				str[i] = ans[i] + 'A' - 1;
			cout << str << "\n";
		}
	}

	return 0;
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43305312/article/details/117526121

智能推荐

MySQL 通过SUBSTRING_INDEX函数拆分字符串为数组单元-程序员宅基地

文章浏览阅读314次。vim test.sh#Define variablesMYSQL_HOME=/usrSQL_SCRIPT_DB_CONNECTION_STRING='-uroot -p'root''SQL_SCRIPT_PAR..._substring_index把每行的字符串转成数组

java.sql.SQLException: The server time zone value ‘������׼ʱ��‘ is unrecognized or represents more th-程序员宅基地

文章浏览阅读1.2k次。配置url后面加上粗体部分。spring.datasource.url=jdbc:mysql://localhost:3306/community?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTCspring.datasour...

Python的Logging模块_python logging-程序员宅基地

文章浏览阅读1.2w次,点赞26次,收藏98次。万字长文带你学透Python的Logging模块,文章通俗易懂且带有相关代码演示,具体案例助你理解_python logging

Android学习笔记(二)_android arrayadapter-程序员宅基地

文章浏览阅读162次。privateString []fruitData={苹果"香蕉"西瓜"privateintchNum=0;_android arrayadapter

poi导出excel,poi3.8包中没有org.apache.poi.ss.usermodel.CellType;-程序员宅基地

文章浏览阅读2.2w次,点赞2次,收藏2次。先做完的导出excel,后来需要一个excel数据导入MySQL数据库的功能,当时做的时候,由于Java对word的2003版本和2007版本在处理上不同,得判断然后分别得创建HSSFWorkbook和XSSFWorkbook两个不同的对象,而XSSFWorkbook对象在低版本(我用的poi3.1)没有包可以导入,必须用高版本的jar包,所以将poi3.1变为了poi3.8。 jar包导入之后..._org.apache.poi.ss.usermodel.celltype

基于php+vue学生作业管理系统python-flask-django-nodejs-程序员宅基地

文章浏览阅读714次,点赞7次,收藏7次。随着网络技术的不断发展,多媒体技术应用渐渐的出现在教育领域中,网络教育已经成为教育发展的一个热门话题。互联网应用在全球范围内日益普及,在许多的网络服务中,Web给人耳目一新的感觉。在这其中,网络平台开展的工作已经越来越流行,当今网络技术的发展,已经成为一种新的工作方式,人们可以通过网络所提供的平台解决相关事务。在

随便推点

【STM32CubeMX+LVGL】记录关于STM32移植LVG时报错问题_移植lvg报错误中文打空格就不报错误了-程序员宅基地

文章浏览阅读772次。打开 构建配置->构建器选项 取消 Use MicroLIB 的勾选,点击保存,测试编译成功。在Keil不报错的情况下,使用VsCode IDE。去掉Use Micro LIB的对钩。如果只报了这三个错误。_移植lvg报错误中文打空格就不报错误了

[django项目实战1]图书管理系统_django图书管理系统-程序员宅基地

文章浏览阅读1.7w次,点赞57次,收藏542次。python django项目实战一,教你从前端到后端,几个小时搭建属于你的管理系统!_django图书管理系统

POJ1135 DIJKSTRA+枚举。_poj1135枚举-程序员宅基地

文章浏览阅读323次。啥话都懒得说了。#include#include#includeusing namespace std;int n,m;const int N=505;const int M=0x3fffffff;int mat[N][N];int d[N];_poj1135枚举

五十、UDF常见错误及报错信息_udf常见报错-程序员宅基地

文章浏览阅读3.3k次,点赞7次,收藏25次。此时cas2想再生成libudf,应该要覆盖掉之前的libudf文件夹,但由于libudf被占用,因此无法覆盖,也就无法生成。也就是说,这种错误和udf无关,同一个文件夹下两个完全不同的udf被两个cas调用,如果这两个cas编译udf时生成的文件夹名称相同,仍然会报上图的错误。如果UDF代码有误,build后出现报错信息,没有修改UDF直接点击load,也会弹出下面的窗口。将UDF编译Build之后,先不要点击load,此时会出现如下图一堆乱码信息,我们需要从中找到有用的信息。如图出现了下图框出的部分。_udf常见报错

视频渲染靠cpu还是显卡 视频渲染的作用是什么_视频渲染吃cpu还是显卡-程序员宅基地

文章浏览阅读1.2w次。随着短视频与微电影行业的蓬勃发展,越来越多的人无论是观众还是导演编剧,对视频的质量都有着极高的要求。也正因如此,在视频制作过程中视频渲染的作用就愈来突出。视频渲染虽然重要,但是在很多的低成本视频制作者的严重却是不太容易利用的一个功能。总所皆知,视频渲染功能对于电脑的性能是有着一定的要求的。视频渲染就像是游戏一样,如何将画面和色彩表现得更加美观,和电脑的CPU和显卡息息相关。会声会影:souurl.cn/A01bsF那么,就出现了一个问题:视频渲染靠cpu还是显卡一、视频渲染靠cpu还是显卡对于专业设_视频渲染吃cpu还是显卡

可以播放GIF和显示圆形图片的自定义ImageView_gif库imageview-程序员宅基地

文章浏览阅读3.1k次。本篇博客参考了郭神的 Android PowerImageView实现,可以播放动画的强大ImageView和鸿洋的Android BitmapShader 实战 实现圆形、圆角图片,做了一些修改和扩展,所以文章50%属于转载50%属于原创吧^^预备知识首先是用来控制GIF图片播放的类为android.graphics.Movie类,这个类很简单,常用的方法就几个:static M_gif库imageview

推荐文章

热门文章

相关标签