六角填数(全排列)蓝桥杯真题
六角填数(全排列)蓝桥杯真题
如图所示六角形中填入1-12的数字,使每条直线上的数字和相等,图中已经填好了3个数字,请你计算*号数字是多少
蓝桥杯老套路,经常这样考全排列,把剩下的数字全排列对于到每个格子中,判断是否可行即可
#include
#include
#include
using namespace std;
int pp[9]={2,4,5,6,7,9,10,11,12};//从左到右从上到下一次对应
bool check(){
int flag=1;
int t=1+pp[0]+pp[3]+pp[5];
if(t==1+pp[1]+pp[4]+pp[8])flag++;
if(t==pp[5]+pp[6]+pp[7]+pp[8])flag++;
if(t==8+pp[0]+pp[1]+pp[2])flag++;
if(t==8+pp[3]+pp[6]+3)flag++;
if(t==pp[2]+pp[4]+pp[7]+3)flag++;
if(flag==6)return true;
return false;
}
int main(){
do{
if(check()){
for(int i=0;i<9;i++){
printf("%d ",pp[i]);
}
break;
}
}while(next_permutation(pp,pp+9));
return 0;
}
六角填数(全排列)蓝桥杯真题相关教程
java实现全排列(无重复)
java实现全排列(无重复) 全排列 全排列就是将一串数字排列组合 列出所有的情况,分成有重复的和无重复的,一般来说没有重复数字的比有重复数字的更难的一些,不过大体思路都差不多,都需要用到回溯算法 整体思路: 1.就是把数字一个一个遍历,发现符合条件就
Gym - 102394FFixing Banners【全排列函数】
Gym - 102394FFixing Banners【全排列函数】 传送门 Input 2 welcome toparticipate inthe ccpccontest inharbin inoctober harvest belong ninja reset amazing intriguing Output No Yes 题意:t组样例,每组六个字符串,问是否能分别从六个字符串中各挑出
I - Interesting Permutation Gym - 102394I(排列组合)
I - Interesting Permutation Gym - 102394I(排列组合) 题意: 纯数题 1≤i≤n, fi=max{a1,a2,…,ai}; 1≤i≤n, gi=min{a1,a2,…,ai}; 1≤i≤n, hi=fi?gi. 数列a是一个排列,问多少种排列方式满足h数列。 题目: DreamGrid has an interesting permutation
n的全排列分治递归求解
n的全排列分治递归求解 R的全排列可归纳定义如下: 当n=1时,perm( R) = ( r ),其中r是集合R中唯一的元素; 当n1时,perm( R)由(r1)perm(R1),(r2)perm(R2),…,(rn)perm(Rn)构成。 有n个元素,把它们编号为1,2…n,用一个数组A 来存放所生成的排列,然后
全排列 1
全排列 1 题目描述 (来源:力扣(LeetCode)) 给定一个没有重复数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 思路解答 典型的DFS或者回溯算法的运用,也类似于八皇后问题 代
全排列 2
全排列 2 题目描述 (来源:力扣(LeetCode)) 给定一个可包含重复数字的序列,返回所有不重复的全排列。(输入的数范围为 1~n) 示例: 输入: [1,1,2] 输出: [ [1,1,2], [1,2,1], [2,1,1] ] 思路分析 大体框架是回溯或者DFS,其次针对该问题核心是如何避免重复
排列与组合的C语言实现
排列与组合的C语言实现 排列与组合是数学里的经典问题,由这个问题可引申出子集、字典排序等问题,那么,我们先看经典的排列与组合,怎么在程序里实现。 在网上搜了一下,关注这个问题的人还是挺多的,有不了人给出的回答是使用几个 for 循环进行嵌套,例如
快速排序
快速排序 基本思想: 通过一趟排序将待排列记录分割成独立的两部分,其中的一部分均比另一部分小,然后分别对这两个部分进行排序,使整个序列有序。 可选择第一个记录pivotkey作为枢纽,设置两个指针low和high,初值分别为low和high。首先从high所指的位置向