简单排列习题2.5 的 2 - 6 P35
用1,2,3,...9组成3个3位数abc, def, ghi;每个数字恰好用一次,要求 abc:def :ghi = 1: 2 : 3;按照abc : def : ghi的格式输出。
通常想到的思路为枚举9个数, 然后再去判断;这样的话最小复杂度为9 * 9 * 9;
枚举消耗的时间相对来说较大,当枚举的范围过大时,我们可以根据条件减小枚举范围;
题中给出了一个等式;
根据这个等式我们可以先枚举出abc的值;
然后根据abc的值去算出bcd, ghi的值;再来判断;
这样的复杂度会减小很多
#include<bits/stdc++.h>
#define clr(x) memset(x, 0, sizeof(x))
#define LL long long
using namespace std;
const int INF = 0x3f3f3f3f;
const int maxn = 100005;
int main()
{
int a;
int vis[15];
for(int i = 1; i <= 9; i++)
for(int j = 1; j <= 9; j++)
for(int k = 1; k <= 9; k++)
{
if(i == j || i == k || k == j)
continue;
clr(vis);
int a = i * 100 + j * 10 + k;
int b = 2 * a;
int c = 3 * a;
vis[i] = 1;
vis[j] = 1;
vis[k] = 1;
vis[b % 10] = 1;
vis[b / 100] = 1;
vis[(b / 10) % 10] = 1;
vis[c % 10] = 1;
vis[c / 100] = 1;
vis[(c / 10) % 10] = 1;
int flag = 1;
for(int l = 1; l <= 9; l++)
{
if(!vis[l])
{
flag = 0;
break;
}
}
if(flag)
{
printf("%d %d %d\n", a, b, c);
}
}
return 0;
}
简单排列习题2.5 的 2 - 6 P35的更多相关文章
- BZOJ 1008 [HNOI2008]越狱 (简单排列组合 + 快速幂)
1008: [HNOI2008]越狱 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 10503 Solved: 4558[Submit][Status ...
- 《Python编程:从入门到实践》第二章 变量和简单数据类型 习题答案
#2.1 print("Hello world!"); #2.2 message="Hello,Python!"; print(message); #2.3 n ...
- codeforces 57 C Array(简单排列组合)
C. Array time limit per test 2 seconds memory limit per test 256 megabytes input standard input outp ...
- [习题] FindControl 简单练习--GridView + CheckBox,点选多列数据(复选删除)#3 List或数组
[习题] FindControl 简单练习--GridView + CheckBox,点选多列数据(复选删除)#3 List或数组 之前的范例,使用字符串.文字来记录将删除的文章ID 后续会有很多小缺 ...
- ACM/ICPC 之 DP-浅谈“排列计数” (POJ1037)
这一题是最近在看Coursera的<算法与设计>的公开课时看到的一道较难的DP例题,之所以写下来,一方面是因为DP的状态我想了很久才想明白,所以借此记录,另一方面是看到这一题有运用到 排列 ...
- 2014中国黑客榜(beta版)
黑客,英文hacker.精通计算机各类技术的计算机高手,泛指擅长IT技术的人群.计算机科学家. 最近受某机构所托搜集国内活跃黑客近况.本着客观专业,权威可信的原则参考了国内从00年到最新的黑客榜单,以 ...
- 快速入门系列--MVC--03控制器和IOC应用
Asp.net MVC也接触好久了,但由于自己一直主要负责后台,尤其是数据库方面的工作对于该框架并没有一个很好的了解,尤其是蒋金楠大师的ASP.NET MVC4框架剖析一书都买了2年多了,真正认真看过 ...
- Pattern Recognition and Machine Learning (preface translation)
前言 鉴于机器学习产生自计算机科学,模式识别却起源于工程学.然而,这些活动能被看做同一个领域的两个方面,并且他们同时在这过去的十年间经历了本质上的发展.特别是,当图像模型已经作为一个用来描述和应用概率 ...
- 学习C语言的数组
C语言的数组 数组声明的实例:int num[3];只要记下这个模板就好. 不建议使用变量定义数组,如果使用了变量定义数组,作为数组的元素的个数,不初始化的情况下是随机值,如果初始化会直接报错 注意: ...
随机推荐
- Python自学:第五章 使用函数range( )
# -*- coding: GBK -*- for value in range(1,5): print(value) 输出为: 1 2 3 4
- scala 中List的简单使用
/** * scala 中List的使用 * */ object ListUse { def main(args: Array[String]): Unit = { def decorator(l:L ...
- Hibernate与数据库交互方式和Hibernate常用的几个方法
第一种,适合sql语言水平比较高的人用 HQL(Hibernate Query Language) 面向对象的查询语言,与SQL不同,HQL中的对象名是区分大小写的(除了JAVA类和属性其他部分不区分 ...
- 软件设计师_朴素模式匹配算法和KMP算法
1.从主字符串中匹配模式字符串(暴力匹配) 2. KMP算法
- python模块typing的作用
一.介绍 Python是一门弱类型的语言,很多时候我们可能不清楚函数参数类型或者返回值类型,很有可能导致一些类型没有指定方法,在写完代码一段时间后回过头看代码,很可能忘记了自己写的函数需要传什么参数, ...
- (36)C# COM交互
调用DLL [DllImport("standerMFC.dll")] public static extern int PReadUID(ref HHFC_SET stru); ...
- 1.RCC of STM32F103
开发板用的是8Mhz晶振,即HSE=8,000,000 f103最大支持72Mhz,即SYSCLK=PLLCLK=72Mhz,HSE=8M,所以PLLM=9即可. /* HCLK = SYSCLK * ...
- vc 识别移动硬盘 U盘,本地硬盘
说明:有时候我们在做设备监控的时候,要识别一些链接设备,在使用函数GetDriveType的时候,U盘可以返回DRIVE_REMOVABLE,而本地硬盘硬盘和移动硬盘DRIVE_FIXED,因此还需要 ...
- LoadRunner参数化详解【转】
距离上次使用loadrunner 已经有一年多的时间了.初做测试时在项目中用过,后面项目中用不到,自己把重点放在了工具之外的东西上,认为性能测试不仅仅是会用工具,最近又想有一把好的利器毕竟可以帮助自己 ...
- leetcode-137-只出现一次的数字②
题目描述: 方法一:数学 class Solution: def singleNumber(self, nums: List[int]) -> int: return (sum(set(nums ...