蓝桥杯 带分数 DFS应用
100 可以表示为带分数的形式:100 = 3 + 69258 / 714。
还可以表示为:100 = 82 + 3546 / 197。
注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。
类似这样的带分数,100 有 11 种表示法。
从标准输入读入一个正整数N (N<1000*1000)
程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的全部种数。
注意:不要求输出每个表示,只统计有多少表示法!
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std; int num[] = {, , , , , , , , },
N, ans; int getSum(int lh, int rh)
{
int sum = ;
for (int i = lh; i <= rh; i++)
{
sum = sum * + num[i];
}
return sum;
} void check()
{
for (int i = ; i < ; i++)
{
int a = getSum(, i);
if (a > N) continue;
for (int j = i + ; j < ; j++)
{
int b = getSum(i + , j);
int c = getSum(j + , );
if (b >= c && b % c == && (a + b/c == N)) {
ans++;
}
}
}
} void solve()
{
cin >> N;
do {
check();
} while(next_permutation(num, num + ));
printf("%d\n", ans);
} int main()
{
solve();
return ;
}
//法二
#include <algorithm>
#include <cstring>
#include <queue>
#define INF 0x3f3f3f3f
#define MAXN 100005
#define Mod 10001
using namespace std;
int vis[], n , ans;
int num[]; int getSum(int lh, int rh)
{
int sum = ;
for (int i = lh; i <= rh; i++) {
sum = sum * + num[i];
}
return sum;
} void check()
{
for (int i = ; i <= ; i++) {
int a = getSum(, i);
if (a > n) continue;
for (int j = i + ; j < ; j++) {
int b = getSum(i + , j); //[i+1, j]
int c = getSum(j + , ); //[j+1, 9]
if (b >= c && b % c == && a + b/c == n) {
ans++;
}
}
}
} void dfs(int step)
{
if (step == ) {
check();
}
else {
for (int i = ; i <= ; i++) {
if (!vis[i]) {
num[step] = i;
vis[i] = ;
dfs(step + );
vis[i] = ;
}
}
} } int main()
{
scanf("%d", &n);
ans = ;
memset(vis, , sizeof(vis));
dfs();
printf("%d\n", ans);
return ;
}
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std; int a[] = {, , , , , , , , , };
int b, c;
int d; void solve()
{
do {
b = a[]* + a[]* + a[]* + a[];
c = a[]* + a[]* + a[]* + a[];
d = a[]* + a[]* + a[]* + a[]* + a[];
// if (b + c == d) {
// cout << b << " + " << c << " = " << d << endl;
// }
} while (next_permutation(a, a + ));
} int main()
{
solve();
return ;
}
//发现好多蓝桥杯省赛的题目 都可以用 next_permutation()轻松解决..
//还有之前整理的一个题目: http://www.cnblogs.com/douzujun/p/6669303.html
蓝桥杯 带分数 DFS应用的更多相关文章
- 蓝桥杯 - 带分数 (DFS)
历届试题 带分数 时间限制:1.0s 内存限制:256.0MB 问题描写叙述 100 能够表示为带分数的形式:100 = 3 + 69258 / 714. 还能够表示为:10 ...
- java实现第四届蓝桥杯带分数
带分数 题目描述 100 可以表示为带分数的形式:100 = 3 + 69258 / 714 还可以表示为:100 = 82 + 3546 / 197 注意特征:带分数中,数字1~9分别出现且只出现一 ...
- 蓝桥杯 全球变暖(dfs)
标题:全球变暖 [题目描述]你有一张某海域NxN像素的照片,"."表示海洋."#"表示陆地,如下所示: 其中"上下左右"四个方向上连在一起的 ...
- POJ 2676 - Sudoku - [蓝桥杯 数独][DFS]
题目链接:http://poj.org/problem?id=2676 Time Limit: 2000MS Memory Limit: 65536K Description Sudoku is a ...
- 蓝桥杯PREV-12(dfs&割点)
题目链接:http://lx.lanqiao.cn/problem.page?gpid=T35 题意:中文题诶- 思路:dfs 假设star 和 end之间总路径数目为ans, 那么若经过路径上某点到 ...
- 蓝桥杯---数独(模拟 || dfs)
[编程题](满分33分) "数独"是当下炙手可热的智力游戏.一般认为它的起源是"拉丁方块",是大数 学家欧拉于1783年发明的. 如图[1.jpg]所示:6x6 ...
- 蓝桥杯---剪格子(DFS&BFS)(小总结)
问题描述 如下图所示,3 x 3 的格子中填写了一些整数. +--*--+--+ |10* 1|52| +--****--+ |20|30* 1| *******--+ | 1| 2| 3| +--+ ...
- 蓝桥杯之大臣的旅费(两次dfs)
Description 很久以前,T王国空前繁荣.为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市. 为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个 ...
- 蓝桥杯之剪格子(经典dfs)
如下图所示,3 x 3 的格子中填写了一些整数. +--*--+--+ |10* 1|52| +--****--+ |20|30* 1| *******--+ | 1| 2| 3| +--+--+-- ...
随机推荐
- tornado学习笔记
一.UIMOTHODS: 1.在项目目录创建uimothods.py文件(名称可以任意)内容: def test2(self): return ('hello uimothods') 2.tornad ...
- 转 ssh-keygen 的 详解
为了让两个linux机器之间使用ssh不需要用户名和密码.所以采用了数字签名RSA或者DSA来完成这个操作. 模型分析 假设 A (192.168.20.59)为客户机器,B(192.168.20.6 ...
- 290. Word Pattern【LeetCode by java】
今天发现LintCode页面刷新不出来了,所以就转战LeetCode.还是像以前一样,做题顺序:难度从低到高,每天至少一题. Given a pattern and a string str, fin ...
- 技术进阶:Kubernetes高级架构与应用状态部署
在了解Kubernetes应用状态部署前,我们先看看Kubernetes的高级架构,方便更好的理解Kubernetes的状态. Kubernetes 的高级架构 包括应用程序部署模型,服务发现和负载均 ...
- PHP密码的六种加密方式
1. MD5加密 string md5 ( string $str [, bool $raw_output = false ] ) 参数 str -- 原始字符串. raw_output -- ...
- final阶段140字评论
按课堂顺序 1约跑APP ,无论从页面还是从功能来看完整度都很高了.演示也用了能展示的方式.多些趣味性就更赞了. 2礼物挑选小工具,做了能在规定时间内的功能.也算是对礼物固话的一个成本最低的回应. 3 ...
- 11th 最后的致意
“终于我们不再是师生”,无论日后我们是否是师生,但这段经历是不可否认的,可以说软件工程这一门课程恐怕是我学生生涯中终生难忘的一段体验.即便不是从知识上,从另一个方面来讲,也教给了我一种做人做事的态度. ...
- 使用ejs模板引擎
let express = require('express'); let fs = require('fs'); let ejs = require('ejs'); let app = expres ...
- 获取select的 text
JS获取select的value和text值的简单实例 感谢 3lian8 的投递 时间:2014-02-27 来源:三联教程 本篇文章主要是对JS获取select的value和text值的简单实例进 ...
- OneZero第二周第四次站立会议(2016.3.31)
会议时间:2016年3月30日 13:00~13:20 会议成员:冉华,张敏,王巍,夏一鸣. 会议目的:汇报前一天工作,全体成员评论,确定会后修改内容或分配下一步任务. 会议内容: 1.前端,夏.张 ...