首页 > 其他分享 >UVA - 129 Krypton Factor 回溯+剪枝

UVA - 129 Krypton Factor 回溯+剪枝

时间:2023-04-07 11:02:00浏览次数:29  
标签:Krypton 剪枝 cnt return cur int ans printf 129


题目大意:给出N种字母,要求用这N种字母组成一个困难的串,困难的串指在串中没有相连的两个子串相同,要求输出第M个困难的串

解题思路:像八皇后一样,前面判断的就不需要再去判断了,直接往后判断即可


#include<cstdio>
#include<cstring>

int n,L;
int ans[100];
bool flag;
int cnt;

bool judge(int cur) {

	for(int i = 1; i <= (cur+1) / 2 ; i++) {
		bool equal = 1;
		for(int j = 0;  j < i; j++)
			if(ans[cur-j] != ans[cur-i-j]) {
				equal = 0;
				break;
			}	
		if(equal)
			return false;	
	}
	return true;
}

void output(int cur) {
	for(int i = 0; i <= cur ; i++) {
		if(i % 4 == 0 && i > 0) {
			if(i % 64 == 0 && i > 0) 
				printf("\n");
			else
				printf(" ");	
		}
	printf("%c",'A' + ans[i]);
	}
	printf("\n%d\n",cur+1);
}

int dfs(int cur) {

	for(int i = 0; i < L; i++) {
		ans[cur] = i;
		if(judge(cur)) {
			cnt++;
			if(cnt == n ) {
				output(cur);
				return 1;
			}
			if(dfs(cur+1))
				return 1;
		}
	}
	return 0;
}

int main() {
	while(scanf("%d%d",&n,&L) != EOF && n + L) { 
		cnt = 0;
		dfs(0);	
	}
	return 0;
}



标签:Krypton,剪枝,cnt,return,cur,int,ans,printf,129
From: https://blog.51cto.com/u_10970600/6175578

相关文章

  • 129. 颜色交替的最短路径
    题目链接:129.颜色交替的最短路径方法:BFS解题思路当边的权重为\(1\)时,可以使用\(BFS\)计算最短路径;因为起始边有两种情况,所以都需要计算,最后取两者的最小值;代码classSolution{public:vector<int>shortestAlternatingPaths(intn,vector<vector<int>>&redEd......
  • 202031607129-杨炜 实验一 软件工程准备—博客园技巧与博客首秀
    项目内容班级博客链接2023年春软件工程(2020级计算机科学与技术本次作业要求链接实验一软件工程准备我的课程学习目标注册博客园和Github账号,学习使用博客园,了解Github的基本操作。本次作业在哪些方面帮我实现学习目标按照实验内容,借助各种链接的例子,一步步......
  • 三菱FX3U,用ST语言与梯形图,混合编写的16仓位的配方程序,程序大小约12984步
    三菱FX3U,用ST语言与梯形图,混合编写的16仓位的配方程序,程序大小约12984步,可以配1到16种不同的产品,16种配方可以根据自己的需求随意设置配方数量与产品数量,可以用条形码设置配方数据与生产数量,也可以使用触摸屏手动设置,共使用了两台秤同时工作,一台秤配8个仓位的配料,使用FX3U485ADP走......
  • CF1295E Permutation Separation 题解 线段树优化dp
    题目链接:https://codeforces.com/problemset/problem/1295/E题目大意:将排列\(p_1,p_2,\ldots,p_n\)先分成\(p_1,\ldots,p_k\)与\(p_{k+1},\ldots,p_n\)两个......
  • bnuoj 12976 Collecting Gold 状压dp
    http://www.bnuoj.com/problem_show.php?pid=12976状态转移方程:dp[s|1<<j][j]=min(dp[s|1<<j][j],dp[s][i]+dis(i,j));code:#include<iostream>#include<stdio.h>#in......
  • Centos7-tar包自定义安装mysql -ERROR 2002_ERROR 1045_ERROR 1054_ERROR 1290_ERROR
    @目录1.自定义安装mysql参考链接ERROR2002/ERROR1045/ERROR1054/ERROR12901.1、ERROR2002报错解决方法:1.2、ERROR1045报错解决方法:2.关于登录mys......
  • “性能续航小超人”iQOO Z7系列登场:售价仅1299元起
    2023年3月20日,“性能续航小超人”iQOOZ7系列正式发布,带来同价位领先的闪充大电池体验,并具备出色的游戏性能体验以及全方位的功能配置,普及领先科技体验,带给对注重产品品质和......
  • 第129篇:JS模块化开发
    好家伙,本篇为《JS高级程序设计》第二十六章“模块”学习笔记 JS开发会遇到代码量大和广泛使用第三方库的问题。解决这个问题的方案通常需要把代码拆分成很多部分,然后......
  • AcWing 第 93 场周赛 4868. 数字替换(dfs+剪枝)
    https://www.acwing.com/problem/content/4871/题目大意:给定两个整数n,x。(x为原始数据,n为需要我们把x变成的位数)可以对x进行任意次以下操作:选择x的一位数字y,将x替......
  • 知识蒸馏、轻量化模型架构、剪枝…几种深度学习模型压缩方法
    摘要:模型压缩算法旨在将一个大模型转化为一个精简的小模型。工业界的模型压缩方法有:知识蒸馏、轻量化模型架构、剪枝、量化。本文分享自华为云社区《深度学习模型压缩方法......