信息奥赛
文飞扬
刘文博的空间,记录信息奥赛教学的一些代码段,全国青少年信息学奥林匹克联赛(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 · 1130 阅读 · 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 · 687 阅读 · 0 评论 -
信息奥赛 有一块金属,三个人对它们进行判断
信息奥赛 有一块金属,三个人对它们进行判断。 甲说:它不是铁,也不是钢。 乙说:它不是铁,而是锌。 丙说:它不是锌,而是铁。原创 2017-03-02 22:59:08 · 584 阅读 · 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 · 1074 阅读 · 0 评论 -
用示例来说明如何重载运算符
用示例来说明如何重载运算符 定义了一个叫做点的结构体,通过重载运算符,可以执行点的加法和输出。 #include using 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 · 539 阅读 · 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 · 569 阅读 · 0 评论 -
信息奥赛 回文数
回文数 一个左右对称的自然数称为回文数,即这个数从左往右读与从右往左读是一样的,如121,686,13731,8668等都是回文数。现请你编一程序, 输入一个长整型范围内的自然数N,判断它是否是回文数。如果是就输出这个回文数,若不是则输出-1。 输入文件:只有一行,就是正整数N, 输出文件:只有一行,N是回文数,就输出N,不是就输出-1。 输入输出样例:原创 2017-03-18 19:20:12 · 642 阅读 · 0 评论 -
信息奥赛 排序
排序 由文本文件提供一个由英文句子组成的短文,短文的总长度不超过240,试编程统计文中各英文字母出现的频率,并按出现的频率, 从高到低重新排列26个英文字母,对出现相同频率的字母按字母表中的优先次序排列。不考虑英文字母的大小写,请全部转换成大写输出,对未出现的英文字母不输出。 输入文件:只有一行,就是一个英文短文, 输出文件:有若干行,每一行先输出字母,然后输出它的频率,中间用原创 2017-03-18 19:27:53 · 620 阅读 · 0 评论 -
信息奥赛 按一定规则出牌
扑克牌 一付扑克牌取所有的方块,按1,2,3,…,10,J,Q,K 的顺序从上至下排好,并按下面要求取走牌:翻出最上面一张牌,放到一旁,把第二张牌放到这叠牌的最下面,……,重复上述过程,直到翻完所有的牌。问: ①最后翻出的牌是哪一张? ②如果要求按1,2,3,…,10,J,Q,K的顺序翻出,则原来的牌又应如何排队? 输入文件:无,为评测方便,请读入一个空文件, 输原创 2017-03-19 10:31:00 · 589 阅读 · 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 · 734 阅读 · 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 · 4344 阅读 · 0 评论 -
7624:山区建小学
#include using 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 · 514 阅读 · 0 评论 -
回文日期(date)
问题描述 在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。 牛牛习惯用8位数字表示一个日期,其中,前4位代表年份,接下来2位代表月份,最后2位代表日期。显然:一个日期只有一种表示方法,而两个不同的日期的表示方法不会相同。 牛牛认为,一个日期是回文的,当且仅当表示这个日期的8位数字是回文的。现在,牛牛想知道:在他指定的两个日期之间(包含这两个日期本身),有多少个原创 2017-06-25 17:18:12 · 2538 阅读 · 0 评论 -
P1605 迷宫
题目背景 迷宫 【问题描述】 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过。给定起点坐标和 终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案。在迷宫 中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障碍。 输入样例 输出样例 【数据规模】 1≤N,M≤5 题目描述原创 2017-07-05 16:49:52 · 722 阅读 · 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 · 960 阅读 · 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 · 1606 阅读 · 0 评论
分享