![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
信息奥赛
文飞扬
刘文博的空间,记录信息奥赛教学的一些代码段,全国青少年信息学奥林匹克联赛(National Olympiad in Informatics in Provinces,简称NOIP)挺好玩
展开
-
信息奥赛 约瑟夫环问题
信息奥赛 约瑟夫环问题编号为1、2、3、…、n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。从指定编号为1的人开始,按顺时针方向自1开始报数,报到指定值m时停止报数,报第m的人出列,并将他的密码作为新的m值,从他在顺时针方向的下一个人开始,重新从1开始报数,如此类推,直至所有的人全部出列为止。输入n(n输入文件:有二行,第一行,N和M,第二行,N个小于等于10000的密码值原创 2017-02-27 20:22:22 · 853 阅读 · 0 评论 -
[NOIP1999]邮票面值设计
[NOIP1999]邮票面值设计题目描述 给定一个信封,最多只允许粘贴N张邮票,计算在给定K种邮票的情况下(假定所有的邮票数量都足够),如何设计邮票的面值,能得到最大max,使得1-max之间的每一个邮资值都能得到。 例如,N=3,K=2,如果面值分别为1分、4分,则在l分-6分之间的每一个邮资值都能得到(当然还有8分、9分和12分):如果面值分别为1分、3分,则在1分-7分之原创 2017-07-05 20:29:58 · 852 阅读 · 0 评论 -
P1605 迷宫
题目背景迷宫 【问题描述】给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过。给定起点坐标和终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案。在迷宫中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障碍。输入样例 输出样例【数据规模】1≤N,M≤5题目描述原创 2017-07-05 16:49:52 · 609 阅读 · 0 评论 -
回文日期(date)
问题描述在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。牛牛习惯用8位数字表示一个日期,其中,前4位代表年份,接下来2位代表月份,最后2位代表日期。显然:一个日期只有一种表示方法,而两个不同的日期的表示方法不会相同。牛牛认为,一个日期是回文的,当且仅当表示这个日期的8位数字是回文的。现在,牛牛想知道:在他指定的两个日期之间(包含这两个日期本身),有多少个原创 2017-06-25 17:18:12 · 2381 阅读 · 0 评论 -
7624:山区建小学
#includeusing namespace std;int d[501] = {0};int sumd[501] = {0};int f[501][501];int cut[501][501];int main(){ int m, n, i, j, k; cout<<"Input m and n\n"; cin>>m>>n; cout<<"Input distanc\n原创 2017-05-06 12:06:00 · 418 阅读 · 0 评论 -
信息奥赛 求数字的乘积根问题
信息奥赛 求数字的乘积根问题一个正整数的数字的乘积N的定义是:这个整数中非零数字的乘积。例如,整数999的数字乘积为9×9×9,即729。729的数字乘积为7×2×9,即126。126的数字乘积为1×2×6,即12。12的数字乘积为1×2,即2。一个正整数的数字乘积根N是这样得到的:反复取该整数的数字乘积,直到得到一位数字为止。例如,在上面的例子中数字的乘积根是2。编一个程序,输入一个原创 2017-02-27 00:23:58 · 4154 阅读 · 0 评论 -
信息奥赛 循环节
循环节求A/B的精确值,精确到小数点后N位,在这N位内若是有限小数,则输出-1; 若出现是无限不循环小数,则输出0;若是循环小数, 则输出一个循环节。其中A、B是整数范围,N输入文件:只有一行,A,B,N,它们中间用空格隔开, 输出文件:只有一行,就是所求结果。 输入输出样例:输入1:90 -45 100 输入2:355 113 19原创 2017-03-19 10:41:35 · 564 阅读 · 0 评论 -
信息奥赛 按一定规则出牌
扑克牌一付扑克牌取所有的方块,按1,2,3,…,10,J,Q,K的顺序从上至下排好,并按下面要求取走牌:翻出最上面一张牌,放到一旁,把第二张牌放到这叠牌的最下面,……,重复上述过程,直到翻完所有的牌。问: ①最后翻出的牌是哪一张?②如果要求按1,2,3,…,10,J,Q,K的顺序翻出,则原来的牌又应如何排队?输入文件:无,为评测方便,请读入一个空文件, 输原创 2017-03-19 10:31:00 · 441 阅读 · 0 评论 -
信息奥赛 排序
排序由文本文件提供一个由英文句子组成的短文,短文的总长度不超过240,试编程统计文中各英文字母出现的频率,并按出现的频率, 从高到低重新排列26个英文字母,对出现相同频率的字母按字母表中的优先次序排列。不考虑英文字母的大小写,请全部转换成大写输出,对未出现的英文字母不输出。输入文件:只有一行,就是一个英文短文, 输出文件:有若干行,每一行先输出字母,然后输出它的频率,中间用原创 2017-03-18 19:27:53 · 520 阅读 · 0 评论 -
信息奥赛 回文数
回文数一个左右对称的自然数称为回文数,即这个数从左往右读与从右往左读是一样的,如121,686,13731,8668等都是回文数。现请你编一程序, 输入一个长整型范围内的自然数N,判断它是否是回文数。如果是就输出这个回文数,若不是则输出-1。输入文件:只有一行,就是正整数N, 输出文件:只有一行,N是回文数,就输出N,不是就输出-1。 输入输出样例:原创 2017-03-18 19:20:12 · 520 阅读 · 0 评论 -
C++利用递归求排列的代码
C++利用递归求排列的代码 求出N个不同元素的所有排列方式,代码中设定10个元素分别是0到9,可以求出这十个元素的所有排列#include <iostream>using namespace std;int arr[10];void perm(int list[], int k, int m);void swap(int &a, int &b);int main(int argc, char*原创 2017-03-04 16:27:23 · 471 阅读 · 0 评论 -
用示例来说明如何重载运算符
用示例来说明如何重载运算符定义了一个叫做点的结构体,通过重载运算符,可以执行点的加法和输出。#includeusing namespace std;struct point{ int x, y; point(int a=0, int b=0) //构造函数 { x = a; y = b; }};point operator+(const point& A,原创 2017-03-17 18:00:17 · 422 阅读 · 0 评论 -
信息奥赛 求整数
信息奥赛 求整数 任意给出一个正整数N,找一个正整数M,使得N*M的值的数字的由0、1、… 、C(C<=9)组成,且这些数字至少出现一次,编程序在整型数范围内找出满足条件的最小M,若没有给出信息“No find!”。(20分)请以a3为文件名存盘。 例如:输入C=3 N=65时,求得M=48 积65*48=3120 输入C=8 N=125时,求得“No f原创 2017-02-24 15:21:02 · 882 阅读 · 0 评论 -
信息奥赛 有一块金属,三个人对它们进行判断
信息奥赛有一块金属,三个人对它们进行判断。 甲说:它不是铁,也不是钢。 乙说:它不是铁,而是锌。 丙说:它不是锌,而是铁。原创 2017-03-02 22:59:08 · 451 阅读 · 0 评论 -
信息奥赛:求最大积
求最大积 若干个正整数之和为n,n<2000, 试求它们乘积的最大值以及该最大值的位数k。#include<iostream>#include<cstring>using namespace std;int main(){ int a[1000], i = 0, j, k, n; memset(a, 0, sizeof(a)); a[0] = 1; freope原创 2017-02-22 17:23:24 · 578 阅读 · 0 评论 -
P1141 01迷宫
P1141 01迷宫题目描述有一个仅由数字0与1组成的n×n格迷宫。若你位于一格0上,那么你可以移动到相邻4格中的某一格1上,同样若你位于一格1上,那么你可以移动到相邻4格中的某一格0上。你的任务是:对于给定的迷宫,询问从某一格开始能移动到多少个格子(包含自身)。输入输出格式输入格式:输入的第1行为两个正整数n,m。下面n行,每行n个字符,字符只可能原创 2017-07-08 07:45:09 · 1489 阅读 · 0 评论