九度OJ 1358:陈博的平均主义 (遍历、递归)
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:354
解决:191
- 题目描述:
-
在JOBDU团队里,陈博是最讲平均主义的人了,但并不是像梁山好汉那样能够做到有钱同花,有肉同吃,毕竟,他还是被家里的领导管着的……陈博的平均主义,就只能体现在他对数字的喜好了。陈博特别喜欢一类“平均数”,“平均数”的具体定义为:对于一个数字,当其以十进制形式表示时,我们可以将其每一位的数字分为两堆,两堆数字的和是相等的。例如,数字363就是一个理想的平均数,因为我们可以将其分为相等的两堆{3, 3}, {6}。现在陈博就要考考你了,看你是否掌握了他的平均主义。假如给你一个整数范围[A, B],你是否能找出,在这个范围内,究竟有多少“平均数“?
- 输入:
- 每个测试文件包含多个测试案例,每个测试案例一行,每行包括两个整数A、B,其中[A,B]这个待查看的整数范围。其中我们能保证1 <= A <= B <= 109,且0 <= B – A <= 105。
- 输出:
- 对于每个整数范围[A, B],返回一个整数,表明这个整数范围内有多少个整数是陈博所喜欢的“平均数”。
- 样例输入:
-
1 50
1 1000
- 样例输出:
-
4
135
思路:
对这个范围内的每个数X分别进行如下分析:
将X的各位数进行拆分,并算出各位数的和S,深度遍历尝试是否能找到和为S/2的几个数。如果找到则为平均数。
代码:
#include <stdio.h>
#include <stdlib.h> #define N 64 int visited[N];
int n;
int a[N];
int sum;
int aver; void parse(int i)
{
n = 0;
while(i)
{
a[n++] = i%10;
i /= 10;
}
} void init()
{
int i;
for (i=0; i<n; i++)
visited[i] = 0;
} int cmp(const void *a, const void *b)
{
return (*(int *)a < *(int *)b) * 2 - 1;
} int choose(int cur, int n)
{
if (cur == aver)
return 1;
if (cur > aver || n == 0)
return 0;
if (!visited[n-1])
{
visited[n-1] = 1;
if (choose(cur+a[n-1], n-1) == 1)
return 1;
visited[n-1] = 0;
}
if (choose(cur, n-1) == 1)
return 1;
return 0;
} int main()
{
int i, j;
int x, y;
int count; while(scanf("%d%d", &x, &y) != EOF)
{
count = 0;
for (i=x; i<=y; i++)
{
parse(i);
qsort(a, n, sizeof(a[0]), cmp);
sum = 0;
for (j=0; j<n; j++)
sum += a[j];
if (sum%2 == 1)
continue;
init();
aver = sum/2;
if (choose(0, n) == 1)
count ++;
}
printf("%d\n", count);
}
return 0;
}
/**************************************************************
Problem: 1358
User: liangrx06
Language: C
Result: Accepted
Time:260 ms
Memory:912 kb
****************************************************************/
九度OJ 1358:陈博的平均主义 (遍历、递归)的更多相关文章
- 【九度OJ】题目1078:二叉树遍历 解题报告
[九度OJ]题目1078:二叉树遍历 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1078 题目描述: 二叉树的前序.中序.后序遍历 ...
- 九度OJ 1359:大魏树遍历 (树)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:299 解决:29 题目描述: 大魏是JOBDU技术组里最喜欢折腾的一个了,单反.骑车.改九度页面,当然还有YY prado.我们姑且先把这些 ...
- 九度OJ 1255:骰子点数概率 (递归、DP)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:316 解决:29 题目描述: 把n个骰子扔在地上,所有骰子朝上一面的点数之和为S.输入n,打印出S的所有可能的值出现的概率. 输入: 输入包 ...
- 九度OJ 1081:递推数列 (递归,二分法)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:6194 解决:864 题目描述: 给定a0,a1,以及an=p*a(n-1) + q*a(n-2)中的p,q.这里n >= 2. 求第 ...
- 九度oj 题目1358:陈博的平均主义
题目描述: 在JOBDU团队里,陈博是最讲平均主义的人了,但并不是像梁山好汉那样能够做到有钱同花,有肉同吃,毕竟,他还是被家里的领导管着的……陈博的平均主义,就只能体现在他对数字的喜好了.陈博特别喜欢 ...
- 九度oj 题目1087:约数的个数
题目链接:http://ac.jobdu.com/problem.php?pid=1087 题目描述: 输入n个整数,依次输出每个数的约数的个数 输入: 输入的第一行为N,即数组的个数(N<=1 ...
- 九度OJ 1502 最大值最小化(JAVA)
题目1502:最大值最小化(二分答案) 九度OJ Java import java.util.Scanner; public class Main { public static int max(in ...
- 九度OJ,题目1089:数字反转
题目描述: 12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问他们两个数反转的和是否等于两个数的和的反转. 输入: 第一行一个正整数表示测试数据的个数n. ...
- 九度OJ 1500 出操队形 -- 动态规划(最长上升子序列)
题目地址:http://ac.jobdu.com/problem.php?pid=1500 题目描述: 在读高中的时候,每天早上学校都要组织全校的师生进行跑步来锻炼身体,每当出操令吹响时,大家就开始往 ...
随机推荐
- sql中limit和汇总函数的集合使用
limit和求和一起 select SUM(A.high) from (select * from minute1_K order by DateTime desc limit 10) A limit ...
- POJ 2392 Space Elevator(贪心+多重背包)
POJ 2392 Space Elevator(贪心+多重背包) http://poj.org/problem?id=2392 题意: 题意:给定n种积木.每种积木都有一个高度h[i],一个数量num ...
- SurfaceView的经典写法
package com.example.test; import android.content.Context; import android.graphics.Canvas; import and ...
- 【Excle】动态更新数据下拉菜单
现在我们制作了一个简单的下拉菜单,如下: 但是随着公司的逐渐扩大,部门也变得多了,目前我是把数据范围写死的 ,所有每次添加一个部门,就得修改数据范围,那么现在我们不想修改这个范围了,想让他每次添加部门 ...
- 实现乐鑫esp8266的无线OTA升级,实现远程在线升级固件
代码地址如下:http://www.demodashi.com/demo/12994.html 一.前言: 写了这么多的8266博文,一直以满意100%的心态去敲写代码固件烧录,以致很少出现 bug ...
- C语言-一个fopen函数中未使用二进制模式(b)引发的血案
转自:http://blog.csdn.net/hinyunsin/article/details/6401854 最近写了一个网络文件传输模块,为了让这个模块具有更好的移植性,我尽量使用C标准IO ...
- android中的样式主题和国际化
一.Android中的样式和主题 1.1样式 样式是作用在控件上的,它是一个包含一个或者多个view控件属性的集合.android style类似网页设计中的css设计思路,可以让设计 ...
- javascript 字符串对象新增 replaceAll 方法
String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) { if(! RegExp.prototype.is ...
- android推送方式
本文介绍在Android中实现推送方式的基础知识及相关解决方案.推送功能在手机开发中应用的场景是越来起来了,不说别的,就我们手机上的新闻客户端就时不j时的推送过来新的消息,很方便的阅读最新的新闻信息. ...
- VUE入门实例,模版组件用法
这里每一个例子可以直接拷进body运行. 本系列为学习记录,并非大神教学案例. 仅仅整理用法,至于VUE的原理,设计模式等等暂不讨论,文中如有不对,还请大家帮忙指正,万分感激. 下一篇会写父子组件交互 ...