自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

韶言大雅

修远求索

  • 博客(78)
  • 资源 (2)
  • 收藏
  • 关注

原创 珠心算测验

题目描述珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术。珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及。某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法。他随机生成一个正整数集合,集合中的数各不相同,然后要求学生回答:其中有多少个数,恰好等于集合中另外两个(不同的)数之和?最近老师出了一些测验题,请你帮忙求出答案。输入格式共两行,第一行包含一个整数n,表示测试题中给出的正整数个数。第二行有n个正整数,每两个正整数之间用一个空格隔开,表示

2020-08-30 23:49:29 213

原创 Cow Gymnastics

题目描述为了提高健康水平,奶牛们开始进行体操训练了!Farmer John 选定了他最喜爱的奶牛 Bessie 来执教其他 N 头奶牛,同时评估她们学习不同的体操技术的进度。K 次训练课的每一次,Bessie 都会根据 N 头奶牛的表现给她们进行排名。之后,她对这些排名的一致性产生了好奇。称一对不同的奶牛是一致的,如果其中一头奶牛在每次训练课中都表现得都比另一头要好。请帮助 Bessie 计算一致的奶牛的对数。输入格式输入的第一行包含两个正整数 K 和 N。以下 K 行每行包含整数 1…N的某种排

2020-08-29 13:28:25 385

原创 低洼地

题目描述一组数,分别表示地平线的高度变化。高度值为整数,相邻高度用直线连接。找出并统计有多少个可能积水的低洼地?如图:地高变化为 0 1 0 2 1 2 0 0 2 0输入格式两行,第一行n,表示有n个数。第2行连续n个数表示地平线高度变化的数据,保证首尾为0。(3<=n<=10000,0<=高度<=1000)输出格式一个数,可能积水低洼地的数目。输入输出100 1 0 2 1 2 0 0 2 0输出 3//判断条件:左坡存在,右坡形成#include&l

2020-08-27 16:16:50 1020

原创 Peter的烟

题目描述Peter 有 n 根烟,他每吸完一根烟就把烟蒂保存起来,k(k>1)个烟蒂可以换一个新的烟,那么 Peter 最终能吸到多少根烟呢?输入格式每组测试数据一行包括两个整数 n,k(1<n,k≤108)。输出格式 对于每组测试数据,输出一行包括一个整数表示最终烟的根数。输入输出样例输入4 3输出5输入10 3输出14说明/提示对于 100%的数据,1<n,k≤108。#include<iostream>using namespace st

2020-08-26 19:45:41 467 1

原创 硬币翻转

题目描述在桌面上有一排硬币,共N枚,每一枚硬币均为正面朝上。现在要把所有的硬币翻转成反面朝上,规则是每次可翻转任意N−1N-1枚硬币(正面向上的被翻转为反面向上,反之亦然)。求一个最短的操作序列(将每次翻转N-1枚硬币成为一次操作)。输入格式一个自然数N(N为不大于100的偶数)。输出格式第一行包含一个整数S,表示最少需要的操作次数。接下来的S行每行分别表示每次操作后桌上硬币的状态(一行包含N个整数(0或1),表示每个硬币的状态:0――正面向上,和1――反面向上,不允许出现多余空格)。对于有多种

2020-08-26 19:15:12 536

原创 栈(P1044)

题目背景栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表。栈有两种最重要的操作,即 pop(从栈顶弹出一个元素)和 push(将一个元素进栈)。栈的重要性不言自明,任何一门数据结构的课程都会介绍栈。宁宁同学在复习栈的基本概念时,想到了一个书上没有讲过的问题,而他自己无法给出答案,所以需要你的帮忙。题目描述宁宁考虑的是这样一个问题:一个操作数序列,1,2,…,n(图示为 1 到 3 的情况),栈 A 的深度大于 n。现在可以进行两种操作,将一个数,从操作数序列的头

2020-08-25 17:01:25 284

原创 表达式括号匹配

题目描述假设一个表达式有英文字母(小写)、运算符(+,—,*,/)和左右小(圆)括号构成,以“@”作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回“YES”;否则返回“NO”。表达式长度小于255,左圆括号少于20个。输入格式一行:表达式输出格式一行:“YES” 或“NO”输入输出样例输入(x+y)/(1-x)@输出YES输入(25+x)(a(a+b+b)@输出NO说明/提示表达式长度小于255,左圆括号少于20个#include<i

2020-08-25 15:52:54 1448

原创 矩阵链乘(Matrix Chain Multiplication)

题目描述​假设你必须评估一种表达形如 ABCDE,其中 A,B,C,D,E是矩阵。既然矩阵乘法是关联的,那么乘法的顺序是任意的。然而,链乘的元素数量必须由你选择的赋值顺序决定。​ 例如,A,B,C分别是 50 * 10 ,10 * 20 和 20 * 5 的矩阵。现在有两种方案计算 A * B * C ,即(A * B) * C 和 A*(B * C)。第一个要进行15000次基本乘法,而第二个只进行3500次。​你的任务就是写出一个程序判定以给定的方式相乘需要多少次基本乘法计算。输入格式输入

2020-08-25 14:54:14 1613 1

原创 打印队列(Printer Queue)(优先队列)

学生会里只有一台打印机,但是有很多文件需要打印,因此打印任务不可避免地需要等待。有些打印任务比较急,有些不那么急,所以每个任务都有一个1~9间的优先级,优先级越高表示任务越急。打印机的运作方式如下:首先从打印队列里取出一个任务J,如果队列里有比J更急的任务,则直接把J放到打印队列尾部,否则打印任务J(此时不会把它放回打印队列)。输入打印队列中各个任务的优先级以及所关注的任务在队列中的位置(队首位置为0),输出该任务完成的时刻。所有任务都需要1分钟打印。例如,打印队列为{1,1,9,1,1,1},目前处于

2020-08-24 20:07:56 6982

原创 压缩技术(倒序版)

题目描述设某汉字由N × N的0和1的点阵图案组成。我们依照以下规则生成压缩码。连续一组数值:从汉字点阵图案的第一行第一个符号开始计算,按书写顺序从左到右,由上至下。第一个数表示连续有几个0,第二个数表示接下来连续有几个1,第三个数再接下来连续有几个0,第四个数接着连续几个1,以此类推……例如: 以下汉字点阵图案:0001000000100000011110001000000100000010001111111对应的压缩码是: 7 3 1 6 1 6 4 3 1 6 1 6 1 3 7

2020-08-24 15:05:50 355

原创 【Mc生存】插火把(数组扩维+模拟)

题目描述话说有一天 linyorson 在“我的世界”开了一个 n×n(n≤100) 的方阵,现在他有 m 个火把和 k 个萤石,分别放在 (x1,y1)…(xm,ym)和 (o1,p1)…(ok,pk)的位置,没有光或没放东西的地方会生成怪物。请问在这个方阵中有几个点会生成怪物?P.S.火把的照亮范围是:|暗|暗| 光 |暗|暗||暗|光| 光 |光|暗||光|光|火把|光|光||暗|光| 光 |光|暗||暗|暗| 光 |暗|暗|萤石:|光|光| 光 |光|光||光|光| 光 |光|光

2020-08-24 11:44:55 743

原创 压缩技术

题目描述设某汉字由N × N的0和1的点阵图案组成。我们依照以下规则生成压缩码。连续一组数值:从汉字点阵图案的第一行第一个符号开始计算,按书写顺序从左到右,由上至下。第一个数表示连续有几个0,第二个数表示接下来连续有几个1,第三个数再接下来连续有几个0,第四个数接着连续几个1,以此类推……例如: 以下汉字点阵图案:0001000000100000011110001000000100000010001111111对应的压缩码是: 7 3 1 6 1 6 4 3 1 6 1 6 1 3 7

2020-08-23 21:22:54 988 2

原创 对称轴(Symmetry)

给出平面上N(N≤1000)个点,问是否可以找到一条竖线,使得所有点左右对称。/*对称轴一定是最左边和最右边点的中点所在竖线。可以找最左边和最右边的点,即横坐标最小和最大。主要是把点的横坐标排序,然后判断左边的第n个点和右边的第n个点是否关于对称轴对称。*/#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>u

2020-08-23 20:50:08 1330 1

原创 复合词 (Compound Words)(集合+字符函数)

题目描述给出一个词典,找出所有的复合词,即恰好有两个单词连接而成的单词。输入每行都是一个小写字母组成的单词。输入已按照字典序从小到大排序,且不超过120000个单词。输出所有复合词,按照字典序从小到大排序。输入输出样例输入aalienbornlesslienneverneverthelessnewnewbornthezebra 输出aliennewborn#include<iostream>#include<cstring>#include&

2020-08-23 20:20:06 1635

原创 交换学生(Foreign Exchange)

有n(1≤n≤500000)个学生想交换到其他学校学习。规定每个想从A学校换到B学校的学生必须找一个想从B换到A的“搭档”。每个人都找到搭档输出“YES”,否则输出“NO”。每个学生用两个整数A,B表示,判断交换是否可以进行。//排序+逐位比较即可#include<bits/stdc++.h>using namespace std;int main(){ int n=0; while((cin>>n)&&n) { int a[n

2020-08-23 14:37:13 959

原创 卡片游戏 (Throwing cards away I)(队列+模拟)

桌子上有n张牌,从第一张牌(即位于牌面的牌)开始,从上往下一次编号为1~n。当剩下两张牌多于两张时进行一下操作:把第一张牌扔掉,然后把新的第一张牌放到整叠牌的最后。当还剩下一张牌的时候,停止操作。输入每行包括一个n,输出每次扔掉的牌及最后剩下的牌。(n<=50)这题的输出要注意:逗号后面有空格,冒号后面没有空格。当n=1的时候,应该输出Discarded cards:(此处没有空格)Remaining card: 1(有空格)#include<cstdio>#include&lt

2020-08-23 14:23:01 662

原创 Ducci序列 (Ducci Sequence)(模拟)

对于一个n元组(a1,a2,…,an),可以对每个数求出它和下一个数的差的绝对值,得到一个新的n元组(|a1-a2|,|a2-a3|,…,|an-a1|)。重复这个过程,得到的序列成为Ducci序列,例如: (8,11,2,7)->(3,9,5,1)->(6,4,4,2)->(2,0,2,4)->(2,2,2,2)->(0,0,0,0). 也有的Ducci序列最终会循环。输入n元组(3≤n≤15),你的任务是判断它最终会变成0还是会循环。输入保证最多1000步就会变成0或循环。

2020-08-23 13:54:00 638

原创 代码对齐(Alignment of Code)

输入若干行代码,要求各列单词的左边界对齐且尽量靠左。单词之间至少要空一格。每个单词不超过80个字符,每行不超过180个字符,一共最多1000行#include<stdio.h>#include<iostream>#include<cstring>#include<vector>#include<sstream>using namespace std;vector<string> ans[1005];string s,t

2020-08-23 11:09:16 1159

原创 开灯(标记)

题目描述在一条无限长的路上,有一排无限长的路灯,编号为1,2,3,4,…。每一盏灯只有两种可能的状态,开或者关。如果按一下某一盏灯的开关,那么这盏灯的状态将发生改变。如果原来是开,将变成关。如果原来是关,将变成开。在刚开始的时候,所有的灯都是关的。小明每次可以进行如下的操作:指定两个数,a,ta(a为实数,t为正整数)。将编号为[a],[2×a],[3×a],…,[t×a]的灯的开关各按一次。其中[k]表示实数k的整数部分。在小明进行了n次操作后,小明突然发现,这个时候只有一盏灯是开的,小明很想知道这盏灯

2020-08-22 20:58:36 193

原创 Hello, 2020!(桶排序)

题目背景时针与分针重合在「零」的那一霎那,嘀嗒声便宣告了新一年的到来。在过去的一年里,世事无常。屏幕面前的你可能不久前才听闻「OI」,也可能暂时地结束了竞赛生涯;可能在赛场上叱咤风云名列榜首,也可能独自承受着比赛失利的落寞。无论如何,过去仍旧是过去,将来依然是将来。以此题为开端,迎接你的 2020 吧!题目描述本场比赛有 n 名出题人,m 名选手。出题人从 1 至 n 依次标号,选手从 1 至 m 依次标号。比赛结束后选手的最终排名为 1 至 m 中其一,且互不相同。报名结束后,第 i 位出题人看了看

2020-08-22 14:41:11 207

原创 回文质数 (Prime Palindromes)

题目描述因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。写一个程序来找出范围 [a,b](5≤a<b≤100,000,000)( 一亿)间的所有回文质数。输入格式第 1 行: 二个整数 a 和 b .输出格式输出一个回文质数的列表,一行一个。输入输出样例输入5 500输出5711101131151181191313353373383//素数筛法+回文数判断#include<bits/stdc++.

2020-08-22 10:07:32 1104

原创 阶乘之和(高精度)

题目描述用高精度计算出S=1!+2!+3!+…+n!(n≤50)其中“!”表示阶乘,例如:5!=5×4×3×2×1。输入格式一个正整数N。输出格式一个正整数S,表示计算结果。输入输出样例输入3输出9//重载运算符#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;struct fantastic

2020-08-21 20:38:53 1655

原创 快速幂(数论)

对于xy的快速幂#include<iostream>using namespace std;const int mod=1000; //对1000取余 int quick_pow(int base,int power){ int result=1; while(power>0) { if(power%2==1) //if(power&1) { result=result*base%mod; }

2020-08-20 11:20:13 118

原创 金币

题目描述国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币。请计算在前K天里,骑士一共获得了多少金币。输入格式一个正整数K,表示发放金币的天数。输出格式一个正整数,即骑士收到的金币数。输入输出样例输入6输出14输

2020-08-18 16:37:08 489 2

原创 计数问题

题目描述试计算在区间 1 到 n 的所有整数中,数字x(0≤x≤9) 共出现了多少次?例如,在 1到11中,即在 1,2,3,4,5,6,7,8,9,10,11中,数字 1 出现了 4 次。输入格式2个整数n,x,之间用一个空格隔开。输出格式1个整数,表示x出现的次数。输入输出样例输入11 1输出4说明/提示对于 100%的数据,1≤n≤1,000,000,0≤x≤9。#include<algorithm>#include<iostream>#inclu

2020-08-17 23:38:56 354

原创 求三角形

题目描述模仿例题,打印出不同方向的正方形,然后打印三角形矩阵。中间有个空行。输入格式 输入矩阵的规模,不超过 9。输出格式输出矩阵和正方形输入输出样例输入4输出01020304050607080910111213141516 01 0203 04050607080910#include<bits/stdc++.h>#include<iostream>#include<algorithm>using namesp

2020-08-17 19:38:59 578

原创 STL应用:大整数类

大整数类BigInteger结构体BigInteger可用于存储高精度非负整数struct BigInteger{ static const int BASE =100000000; static const int WIDTH =8; vector<int> s; BigInteger(long long num=0){*this = num;} //构造函数 BigInteger operator=(long long num) {

2020-08-16 11:54:34 281

原创 测试STL

随机数发生器核心函数是cstdlib中的rand(),它生成一个闭区间[0,RAND_MAX]内的均匀随机整数(伪随机数)。产生[0,n]间的整数:执行rand()后先除以RAND_MAX,得到[0,1]之间的随机实数,扩大n倍后四舍五入,对于普通的运用已可以满足要求。一开始会执行一次srand(time(NULL)),目的是初始化“随机数种子”。不调用srand将在程序每次执行时得到同一套随机数。不需要在一个程序里多次调用。随机程序实例:void fill_random_int (vector&

2020-08-15 16:28:33 154

原创 STL初步:栈,队列和优先队列

集合栈计算机(The SetStack Computer)有一个专门为了集合运算而设计的“集合栈”计算机。该机器有一个初始为空的栈,并且支持以下操作:PUSH:空集“{}”入栈DUP:把当前栈顶元素复制一份后再入栈UNION:出栈两个集合,然后把两者的并集入栈INTERSECT:出栈两个集合,然后把二者的交集入栈ADD:出栈两个集合,然后把先出栈的集合加入到后出栈的集合中,把结果入栈每次操作后,输出栈顶集合的大小(即元素个数)。例如栈顶元素是A={ {}, {{}} }, 下一个元素是B=

2020-08-15 16:05:50 185

原创 STL初步:映射map(反片语(Ananagrams))

map就是从键(key)到值(value)的映射。例如可以用一个map<string,int>month_name来表示“月份名字到月份编号”的映射,然后用month_name[“July”]=7这样的方式来赋值。输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文本中的另外一个单词。在判断是否满足条件时,字母不分大小写,但在输入时应保留输入中的大小写,按字典序进行排列(所有大写字母在小写字母的前面)样例输入:ladder came tape soon lead

2020-08-13 16:46:53 162

原创 STL初步:集合set(安迪的第一个字典(Andy‘s First Dictionary))

set就是数学上的集合——每个元素最多只出现一次。和sort一样,自定义类型也可以构造set,但同样必须定义“小于”运算符。【问题描述】输入一个文本,找出所有不同的单词(连续的字母序列),按字典序从小到大输出。单词不区分大小写。【样例输入】Adventures in DisneylandTwo blondes were going to Disneyland when they came to a fork in the road. The sign read: “Disneyland Left.”

2020-08-13 16:01:30 195

原创 STL初步:不定长数组vector(木块问题(The Blocks Problem))

从左到右有n个木块(编号为0~n-1),要求模拟以下4种操作(下面的a和b都是木块编号)。move a onto b:把a和b上方的木块全部归位,然后把a摞在b上面move a over b:把a上方的木块全部归位,然后把a放在b所在木块堆的顶部pile a onto b:把b上方的木块全部归位,然后把a及其上方的木块整体摞在b上面pile a over b:把a及其上方的木块整体摞在b所在堆的顶部遇到quit时终止一组数据。a和b在同一堆的指令是非法指令,应当忽略。所有操作结

2020-08-13 15:38:51 168

原创 STL初步:排序与检索(大理石在哪(Where is the Marble?))

现有N个大理石,每个大理石上写了一个非负整数、首先把各数从小到大排序然后回答Q个问题。每个问题问是否有一个大理石写着某个整数x,如果是,还要回答哪个大理石上写着x。排序后的大理石从左到右编号为1~N。(在样例中,为了节约篇幅,所有大理石的数合并到一行,所有问题也合并到一行。)样例输入:4 12 3 5 155 21 3 3 3 12 3样例输出:CASE# 1:5 found at 4CASE# 2:2 not foundfound at 3分析:根据题目意思,我们首先应该先进行排序

2020-08-12 19:44:01 210

原创 模板(sum函数)

//局限:只能求整数数组的和int sum(int *begin,int *end){ int *p=begin; int ans=0; for(int *p=begin;p!=end;p++) { ans+=*p; } return ans;}//修改后可用sum函数给double数组和Point数组求和了template<typename T>T sum(T *begin,T *end){ T *p=begin; T ans=0; for(T *p=beg

2020-08-12 19:13:15 411

原创 三整数排序(改)

//快速排序 # include <iostream># include <algorithm>using namespace std;int main(){ int s[3]; cin>>s[0]>>s[1]>>s[2]; sort(s,s+3); cout<<s[0]<<" "<<s[1]<<" "<<s[2]; return 0;}

2020-08-12 16:58:28 100

原创 再谈结构体

//示例#include<iostream>using namespace std;struct Point{ int x,y; Point(int x=0,int y=0):x(x),y(y){}};Point operator + (const Point& A,const Point &B){ return Point(A.x+B.x,A.y+B.y);}ostream& operator<<(ostream &out,c

2020-08-11 21:32:51 112

原创 洪水!(Flooded!)

有一个n*m(1<=m,n<30)的网格,每个格子是边长为10米的正方形,网格四周是无限长的墙壁。输入每个盒子的海拔高度,以及网格内雨水的总体积,输出水位的海拔高度和有多少百分比的区域有水。(高度严格小于水平面)#include<cstring>#include<cstdio>#include<iostream>#include<algorithm>using namespace std;int s[900];int main(){

2020-08-11 20:22:44 276

原创 IP网络(IP Networks)

#include<iostream>#include<cstdio>#include<iomanip>#include<cmath>typedef long long ll;using namespace std;int main(){ ll ip_or; ll ip_and; ll ip_xor; ll mask; ll segment; int n; ll temp; ll num1,num2,num3,num4; ch..

2020-08-11 19:58:54 947

原创 对角线

对于一个 n 个顶点的凸多边形,它的任何三条对角线都不会交于一点。请求出图形中对角线交点的个数。例如,6 边形:输入格式输入只有一行一个整数 n,代表边数。输出格式输出一行一个整数代表答案。输入输出样例输入:3输出:0输入:6输出:15说明/提示数据规模与约定对于 50% 的数据,保证 3≤n≤100。对于 100% 的数据,保证 3≤n≤105。#include<cstdio>#include<iostream>using namespace s

2020-08-11 11:35:09 313

原创 骰子涂色(Cubepainting)

We have a machine for painting cubes. It is supplied with three different colors: blue, red and green. Each face of the cube gets one of these colors.The cube’s faces are numbered as in Figure 1.Since a cube has 6 faces, our machine can paint a face-num

2020-08-11 11:28:59 419 1

实验三:数值积分测试用项目c++文件

包括测试用主函数与各封装函数代码

2020-12-30

实验二:插值与逼近测试用项目c++文件

包括测试用主函数与各封装函数代码

2020-12-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除