1524 残缺的数字

1524 残缺的数字

时间限制: 1 s

空间限制: 1000 KB

题目等级 : 黄金 Gold

题解

查看运行结果

题目描述 Description

可怜的小小在数数字……。本来有1..n这n个数,但是她一不小心数没了一个数X。如果这个事情被残酷的Evil Zig 发现,那么这个可怜的小女孩将会……。为了拯救小小我们必须找到那个失踪的数X!现在我们现在只知道 0..9个十个数字在这剩下的N-1个数中分别出现的次数,你必须以次求出N和X。若有多组解,则全部输出,每行一组。

输入描述 Input Description

仅有一行,包含10个数,分别表示0 .. 9在n-1个数字中出现的次数。( 每个数均不大于300 )

输出描述 Output Description

输入所有可能的N和X,每组一行。按从小到大的顺序排序(N为第一关键字,X为第二关键字)。若无解,输出“NO ANSWER”。

样例输入 Sample Input

0 1 1 0 1 1 1 1 1 1

样例输出 Sample Output

9 3

数据范围及提示 Data Size & Hint

分类标签 Tags 点此展开

首先说一下:数据太水

本题,就是一模拟,一人一习惯,貌似我的写的很长了。

代码

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int num[10];
int s[10],s1[10];
int main(){
    int n,m,l;//暂时储放器
    int e=0,d=0,z=0;//计数+标志
    for(int i=0;i<=9;i++){
        scanf("%d",num+i);
        if(num[i]>=300){
            d=3;
        }
    }
    if(z!=10&&d!=3){
        for(int i=1;i<=3000;i++){//大约在数据范围内
            m=i;//~~以下开始模拟,具体自己看看
            while(i!=0){
                l=i%10;
                s[l]+=1;
                i/=10;
            }
            i=m;
            for(int j=1;j<=i;j++){
                for(int c=0;c<=9;c++){
                    s1[c]=s[c];
                }
                n=j;
                while(j!=0){
                    l=j%10;
                    s[l]-=1;
                    j=j/10;
                }
                for(int c=0;c<=9;c++){
                    if(num[c]==s[c]) e++;
                    else break;
                }
                j=n;
                if(e==10){
                    printf("%d %d",i,j);d=1;return 0;
                }
                e=0;
                for(int c=0;c<=9;c++){
                    s[c]=s1[c];
                }
            }
            m=0;
        }
    }
    else d=0;
    if(d!=1) printf("NO ANSWER\n");
    return 0;
}
时间: 2024-10-20 07:44:48

1524 残缺的数字的相关文章

九度OJ 1534 数组中第K小的数字

题目1534:数组中第K小的数字 时间限制:2 秒 内存限制:128 兆 特殊判题:否 提交:1524 解决:307 题目描述: 给定两个整型数组A和B.我们将A和B中的元素两两相加可以得到数组C. 譬如A为[1,2],B为[3,4].那么由A和B中的元素两两相加得到的数组C为[4,5,5,6]. 现在给你数组A和B,求由A和B两两相加得到的数组C中,第K小的数字. 输入: 输入可能包含多个测试案例. 对于每个测试案例,输入的第一行为三个整数m,n, k(1<=m,n<=100000, 1&l

华为软肋渐显:分红神话背后员工持股模式残缺(应该利用中国的资本过剩优势)

华为模式的软肋在这里,任正非没告诉你的 本文来源于南风窗公众号 华为公司,现在已经成了中国经济乃至“政治经济”领域的最大热门之一.从公众到高层,一片叫好,改革开放以来,中国从未有一家公司享受过这样的“待遇”. 有人认为,华为是实体经济的代表,当其他IT企业都去做金融,唯有它坚守实业.所以,“华为热”代表了中国经济的一种“价值取向”. 不妨换个角度看问题.华为固然是一家一流企业,但也没有必要过度吹捧.外部需求下滑,内部经济放缓,华为亦无法在内外宏观经济形势走弱的过程中独善其身.它再次走到节点,需要

软件项目管理与素质拓展-2.3项目管理是残缺的美

2.3.1 路易10世的地牢 课堂讨论2?1 路易10世的地牢 你是路易10世的俘虏.他要给自己的城堡增加三个新地牢,让你做一个规划.干得好就释放,干不好就终生监禁. 小地牢很难设计,要12周,但容易建成,1周即可: 中地牢设计要5周,施工要6周: 大地牢设计只要1周,但建造要用9周: 每种地牢必须设计全部完成后才能着手建造: 你有远道而来的一个设计师和一个建筑师: 设计师不会建造而建筑师不会设计. 问:要建好这三个地牢,你该如何规划? 首先,我们认真分析下地牢建造中的“项目三角形”有什么特点,

残缺棋盘的覆盖问题

棋盘覆盖问题    问题描述: 在一个2^k×2^k个方格组成的棋盘中,若有一个方格与其他方格不同,则称该方格为一特殊方格,且称该棋盘为一个特殊棋盘.显然特殊方格在棋盘上出现的位置有4^k种情形.因而对任何k≥0,有4^k种不同的特殊棋盘.     下图–图(1)中的特殊棋盘是当k=3时16个特殊棋盘中的一个: 图(1) 题目要求在棋盘覆盖问题中,要用下图-图(2)所示的4种不同形态的L型骨牌覆盖一个给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖. 图(2) 题目输入k

【数字图像处理】顶帽变换和底帽变换

文章链接:http://blog.csdn.net/kk55guang2/article/details/78490069 顶帽变换和底帽变换 灰度级图像 f 的顶帽变换(top-hat transformation)定义为f减去其开操作: That(f)=f−(f°b) 类似地,f 的底帽变换(bottom-hat transformation)定义为f的闭操作减去f: Bhat(f)=(f?b)−f   这两个变换的主要应用之一是,用一个结构元通过开操作或闭操作从一副图像中删除物体,而不是拟

大写中文数字-財务

壹.贰.叁.肆.伍.陆.柒.捌.玖.拾.佰.仟.万.亿.元(圆).角.分.零.整.这是大家常常要填写的大写数字,问什么要用大写数字呢?想必非常多人都不是非常清楚! 先看看下面两个有关大写数字的表格: 1.数码与大.小写数字的对比表: 数码 小写数字 大写数字 0 ○ 零 1 一 壹 2 二 贰 3 三 叁/參 4 四 肆 5 五 伍 6 六 陆 7 七 柒 8 八 捌 9 九 玖 2.进位数码与大.小写数字的对比表 数码 小写数字 大写数字 10 十 拾 20 二十 廿 30 三十 卅 100

习题7 数字金字塔

输入任意数字X(例:6),输出如下图形 首先使用两层for循环,一层循环行数,一层循环列数 如题,在列中,不仅要输出"*",还要输出空格,所以在第一层for循环中,应使用两个并列的for循环 import java.util.Scanner; public class Jinzita { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int x=scanner.nextI

WORD2010如何把全角字母和数字批量转换成半角

个人觉得全角字符看起来相当别扭,如果文档中存在大量全角形式的字母和数字,要如何把它们全部转化成半角的呢? 全角和半角 全角是指一个字符占用两个标准字符位置的状态.汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符. 半角的显示内码都是一个字节,英文字母.罗马数字.西方语言的符号都是半角形式. END 如何实现全角半角间的转换 全角字符占用更多字符,看起来也不够美观,如何将全角字符转换成半角的呢?这里我们可以利用word来实现.   不论是txt文档还是其他什

20170913自制猜数字游戏

/* 猜数字:系统随机生成一个四位数,请根据下列判断猜出来 A:数值正确,位置正确 B:数值正确,位置不正确 C:数值不正确 */ #include<stdio.h> #include<time.h> #include<stdlib.h> #pragma warning (disable:4996) #define pUCharHead unsigned char * //以数组形式返回n个无重复的随机数,范围可指定[min,max] pUCharHead GenNoR