![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
洛谷
成渝丶
这个作者很懒,什么都没留下…
展开
-
P1605 迷宫(dfs)
详细代码:#include<iostream>using namespace std;int n, m, t, sx, sy, fx, fy,res;const int N = 100;int mp[N][N],vis[N][N];int xx[] = { 1,0,-1,0 };int yy[] = { 0,1,0,-1 };void dfs(int x, int y){ if (x == fx && y == fy) { res++; retur.原创 2021-03-22 16:38:39 · 76 阅读 · 0 评论 -
P1303 A*B Problem 高精度乘法
题目描述求两数的积。输入格式两行,两个整数。输出格式一行一个整数表示乘积。输入 #112输出 #12标题#include <iostream>using namespace std;#include<cstdio>#include<string>#include<queue>string x, y;int a[100005], b[100005], c[10005], la, lb, lc;int main() { c原创 2021-03-14 17:23:23 · 80 阅读 · 0 评论 -
P2142 高精度减法
题目描述高精度减法。输入格式两个整数 a,b(第二个可能比第一个大)。输出格式结果(是负数要输出负号)。输入 #121输出 #11代码:#include <iostream>using namespace std;#include<cstdio>#include<string>#include<queue>string x, y;int a[100005], b[100005], c[10005], la, lb, lc;原创 2021-03-14 16:54:14 · 122 阅读 · 0 评论 -
P1601 A+B Problem(高精)
题目描述高精度加法,相当于a+b problem,不用考虑负数.输入格式分两行输入。a,b≤10的500次方输出格式输出只有一行,代表a+b的值输入 #111输出 #12输入 #210019099输出 #210100代码:#include<iostream>#include<string.h>using namespace std;string x, y;int a[100000], b[100000], c[100000], la, lb,原创 2021-03-13 23:40:29 · 115 阅读 · 0 评论 -
P1803 凌乱的yyy / 线段覆盖
代码:#include<iostream>using namespace std;#include<cstdio>#include<algorithm>int n,cnt,cur;struct test{ int start, end;}a[1000010];bool cmp(test x, test y){ return x.end < y.end;}int main() { cin >> n; for (in.原创 2021-03-13 20:53:57 · 71 阅读 · 0 评论 -
P1208 [USACO1.3]混合牛奶 Mixing Milk
思路:直接贪心算法,先把输入进去的价格从小到大进行排序,然后一一进行购买就可以了代码:#include<iostream>using namespace std;#include<cstdio>#include<algorithm>struct milk { int price; int milk;}a[10000];int main() { int n, m; cin >> m >> n;//m表示需要牛奶的总数.原创 2021-03-13 18:21:43 · 166 阅读 · 0 评论 -
P1002 [NOIP2002 普及组] 过河卒
思路:首先是一个二维棋盘,最先定义的那么就是一个二维数组,然后可以把不能走到的点设置为-1,每次往下走的时候遇到-1就continue。然后关于马的九个点是走不到的,这样我们就需要手动的将马的九个点设置为-1,但是要考虑一个问题,就是马的点很可能会越界,如何处理这个问题呢,我们在外层加2层即可,这样即使马在最外侧,仍然能够保持不越界。代码:#include<iostream>using namespace std;const int Mn = 10010;long long a.原创 2021-03-13 11:49:37 · 368 阅读 · 0 评论 -
P1135 奇怪的电梯
代码:#include<iostream>using namespace std;#include<cstring>#include<queue>#include<cstdio>int main(){ int visit[1000] = { 0 }; int n, a, b; cin >>n >> a >> b; int num[1000]; for (int i = 1; i <= n;.原创 2021-03-10 22:04:48 · 70 阅读 · 0 评论 -
P1162 填涂颜色
题目描述由数字0组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向。现要求把闭合圈内的所有空间都填写成2.例如:6×6的方阵,涂色前和涂色后的方阵如下:0 0 0 0 0 00 0 1 1 1 10 1 1 0 0 11 1 0 0 0 11 0 0 0 0 11 1 1 1 1 10 0 0 0 0 00 0 1 1 1 10 1 1 2 2 11 1 2 2 2 11 2 2 2 2 11 1 1 1 1 1输入格式每组测试数据第一行一个整数n原创 2021-03-10 19:27:06 · 91 阅读 · 0 评论 -
P1217 [USACO1.5]回文质数 Prime Palindromes
题目描述因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。写一个程序来找出范围 [a,b]5≤a<b≤100,000,000( 一亿)间的所有回文质数。输入格式第 1 行: 二个整数 a 和 b .输出格式输出一个回文质数的列表,一行一个。输入 #15 500输出 #15711101131151181191313353373383思路1:下面是第一种判断方法,分别写出判断回文数和质数的函数,然后a循环到b,原创 2021-03-10 16:36:14 · 540 阅读 · 1 评论 -
P1036 [NOIP2002 普及组] 选数
思路:首先看到这一题首先的第一反应是dfs,我个人是看成一种变种的多个数字的全排列,符合条件就cnt++。开始先输入所有的数字到数组里面去。int a[30];for(int i =1;i<=n;i++)//n为数字总共有多少个{ cin >> a[i];}然后要准备好三个参数。1.当前的数组坐标位置,也就是记录当前递归到了哪个位置2.当前记录下了几个数字3.当前记录数字的总和int count = 0;dfs(int p,int x,int sum){ i.原创 2021-03-10 13:23:05 · 465 阅读 · 0 评论 -
P1028 [NOIP2001 普及组] 数的计算
题目描述我们要求找出具有下列性质数的个数(包含输入的正整数 n)。先输入一个正整数 n(n≤1000),然后对此正整数按照如下方法进行处理:1.不作任何处理;2.在它的左边加上一个正整数,但该正整数不能超过原数的一半;3.加上数后,继续按此规则进行处理,直到不能再加正整数为止。输入格式1 个正整数 n(n≤1000)输出格式1 个整数,表示具有该性质数的个数。输入输出样例输入 #16输出 #16说明/提示满足条件的数为6,16,26,126,36,136代码:利用原创 2021-03-10 12:13:14 · 96 阅读 · 0 评论 -
P1957 口算练习题
题目:王老师正在教简单算术运算。细心的王老师收集了i道学生经常做错的口算题,并且想整理编写成一份练习。 编排这些题目是一件繁琐的事情,为此他想用计算机程序来提高工作效率。王老师希望尽量减少输入的工作量,比如5+8的算式最好只要输入5和8,输出的结果要尽量详细以方便后期排版的使用,比如对于上述输入进行处理后输出 5+8=13 以及该算式的总长度6。王老师把这个光荣的任务交给你,请你帮他编程实现以上功能。输入格式第一行为数值i接着的i行为需要输入的算式,每行可能有三个数据或两个数据。若该行为三个数据则原创 2021-03-09 22:22:59 · 141 阅读 · 0 评论 -
简单总结,反序数,Old Bill
如当前数字为1234,要求出4321,简单书写一个函数即可int Reverse(int number){ int reversenumber = 0; while(number != 0) { reversenumber *= 10; reversenumber += number %10; number / 10; } return reversenumber;}题目描述打印所有不超过256,其平方具有对称性质的数。如2,11就是这样的数,因为22=4,1111=121原创 2021-02-28 13:36:58 · 137 阅读 · 0 评论 -
P1022 [NOIP2000 普及组] 计算器的改良
思路:.首先每个字符该如何进行读取,个人选择的读取方式是读一个处理一个,并没有创造字符串数组,也就是简单一个char c利用循环读取即可每个字符读取后该如何处理。创建一个int k0,kx来记录数字的总数和未知数的总数,然后最后相除即可出结果如果读入的是数字,那么就定义一个s记录下每次读取的数字,由于读入的数字很可能大于10,那么用秦九韶方法记录,s = s*10 + c - ‘0’;但不需要加到k0中,等下次遇到加减号再进行加减当遇到的字母的时候,这时候代表字母前面的数字.原创 2021-03-09 19:01:50 · 369 阅读 · 0 评论 -
P1014 [NOIP1999 普及组] Cantor 表
思路:由于是斜着进行的,第一斜行为1个数字,第二斜行为两个数字,第三斜行为三个数字,以此类推,这样我们先定义一个变量n进行输入,然后再定义一个a用于判断当前是第几斜行了,每次就利用循环while(n-a > 0){n -= a;a++;}当n-a<0的时候循环退出,这个时候的a就是当前的斜行数,然后n就代表这个斜行的第几个数,这样分析的话题目就清晰了还有一个要注意的地方,打印的时候要判断是奇数行还是偶数行,因为奇数行是从下至上斜着数,偶数行则相反,下面贴上代码;代码:#in.原创 2021-03-09 15:18:50 · 215 阅读 · 0 评论 -
P1464 Function
思路:首先根据题目要求来书写函数,这个比较简单,就跟着题目要求写就好了#include<iostream>using namespace std;#include<cstring>long long w(long long a, long long b, long long c){ if (a <= 0 || b <= 0 || c <= 0) return 1; else if (a > 20 || b > 20 || c &g.原创 2021-03-07 18:48:32 · 69 阅读 · 0 评论 -
P1579 哥德巴赫猜想(升级版)
题目:1742年6月7日哥德巴赫写信给当时的大数学家欧拉,正式提出了以下的猜想:任何一个大于9的奇数都可以表示成3个质数之和。质数是指除了1和本身之外没有其他约数的数,如2和11都是质数,而6不是质数,因为6除了约数1和6之外还有约数2和3。需要特别说明的是1不是质数。这就是哥德巴赫猜想。欧拉在回信中说,他相信这个猜想是正确的,但他不能证明。从此,这道数学难题引起了几乎所有数学家的注意。哥德巴赫猜想由此成为数学皇冠上一颗可望不可及的“明珠”。题目描述现在请你编一个程序验证哥德巴赫猜想。先给出一个原创 2021-03-07 16:20:11 · 99 阅读 · 0 评论 -
P1553 数字反转(升级版)
代码:#include<iostream>#include<cstdio>using namespace std;#include<cstring>int main(){ char a[100]; cin >> a; int la = strlen(a), p = la;//p用来记录位置 for (int i = 0; i < la; i++) { if (a[i] == '.' || a[i] == '/' || a[i.原创 2021-03-05 20:34:16 · 75 阅读 · 0 评论 -
P1308 [NOIP2011 普及组] 统计单词数
题目描述一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同(参见样例1 ),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例2 )。输入格式共2行。第1行为一个字符串,其中只含字母,表示给定单词;第原创 2021-03-05 15:44:02 · 889 阅读 · 0 评论 -
P1319 压缩技术
代码:#include<iostream>using namespace std;int n, s = 1, a,i =1;int main(){ cin >> n; while (s <= n * n) { cin >> a; for (int j = 1; j <= a; j++) { if (i % 2 == 1) cout << 0; else cout << 1; .原创 2021-03-05 00:01:55 · 362 阅读 · 1 评论 -
P5731 【深基5.习6】蛇形方阵
题目描述给出一个不大于 9 的正整数 n,输出 n×n的蛇形方阵。从左上角填上 1 开始,顺时针方向依次填入数字,如同样例所示。注意每个数字有都会占用 3 个字符,前面使用空格补齐。输入格式无输出格式无输入 #14输出 #11 2 3 412 13 14 511 16 15 610 9 8 7思路:首先不管怎么样,先构造出一个正方形的模型,也就是这一题肯定要用二维数组来解决了,由于题目说给出一个不大于9的正整数n,那么定义一个大小为10的二维数组即可。然后就要原创 2021-03-04 21:12:16 · 532 阅读 · 1 评论 -
P1614 爱与愁的心痛,一直60分,求大佬帮我看看为什么……
#include<iostream>using namespace std;int main(){ int n, m; cin >> n >> m; int a[100000] = { 0 }; for (int i = 1; i <= n; i++) { cin >> a[i]; } int min = 9999; int sum = 0; for (int i = 1; i <= n - m + 1; i++).原创 2021-03-04 14:46:34 · 61 阅读 · 1 评论 -
[NOIP2015 提高组] 神奇的幻方
思路:先不要被题目所大量的描述迷惑了,要着重抓住幻方的特点,首先先把正方形的模型构造出来.建造一个二维数组int a[20][20];假设输入的N为3,那么首先第一个先要把1输进去,是第一行的中间,题目已经给出了N为奇数,那么数组就从1开始,这样就好计算一点。那么首先确定好第一个的位置,那么就是i = 1,j = (n/2)+1;这就刚开始的位置,然后再选择后面的数字该如何防止;规律:首先假设N为3,放置好1的位置后,接着放2的位置,由于 1 %3 !=0(幻方的规律,当放入的数无法整除规格大小.原创 2021-03-04 13:51:04 · 170 阅读 · 1 评论 -
P2550 [AHOI2001]彩票摇奖
思路:可以先设置一个数组用来存储中奖的号码,如当中奖号码为19,令f[19] = 1由于题目给出了数字最大不超过33,这样只需定义一个int a[33] = {0};即可,然后再利用一个二重for循环来进行输入,并且每一次输入就判断一次是否是中奖号码,是则sum++,当sum ==7时,这也就是特等奖,然后再建立一个数组进行保存所有奖项的次数,然后再打印即可代码:#include<iostream>using namespace std;#include<cstdio>.原创 2021-03-04 12:06:45 · 241 阅读 · 1 评论 -
P5729 【深基5.例7】工艺品制作
思路:首先由于是立方体,那么肯定要构造立方体的模型,也就是三维数组,然后总的大体积就是长宽高相乘,也就是wxh,然后看了半天题目也看不懂是怎么减去的,但根据题目的分析可得(1,1,1) (2,2,2)刚好减去了8的体积,那么就可以姑且认为这是减去的是三维排列例如:(1,1,1),(1,1,2),(1,2,1),(1,2,2),(2,1,1),(2,1,2),(2,2,1),(2,2,2)刚好为八个,如果这样理解的话,这题就清晰了;代码:#include<iostream>using .原创 2021-03-04 00:24:54 · 234 阅读 · 2 评论 -
P1307 [NOIP2011 普及组] 数字反转 题解
题目描述给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。输入格式一个整数 N输出格式一个整数,表示反转后的新数。输入 1123输出1321输入2-380输出2-83代码:#include <cstdio>#include<iostream>using namespace std;int main() { int n; cin >原创 2021-03-02 23:22:11 · 783 阅读 · 0 评论 -
P5717 【深基3.习8】三角形分类
题目描述给出三条线段 a,b,ca,b,ca,b,c 的长度,均是不大于 10000 的整数。打算把这三条线段拼成一个三角形,它可以是什么三角形呢?如果三条线段不能组成一个三角形,输出Not triangle;如果是直角三角形,输出Right triangle;如果是锐角三角形,输出Acute triangle;如果是钝角三角形,输出Obtuse triangle;如果是等腰三角形,输出Isosceles triangle;如果是等边三角形,输出Equilateral triangle。如原创 2021-03-02 20:30:15 · 327 阅读 · 0 评论 -
gcd最大公约数
gcd最大公约数需要运用到辗转相除法有整数a和ba % b有余数c如果c==0,那么a就是最大公约数,如果c !=0,则a = b,b =c,再回去执行1int gcd(int a,int b) { int c; while(b>0) { c=a%b; a=b; b=c; } return a;}题目描述输入一组勾股数 a,b,c(a≠b≠c),用分数格式输出其较小锐角的正弦值。(要求约分。)输入格原创 2021-03-02 20:15:15 · 445 阅读 · 0 评论 -
洛谷P5732 【深基5.习7】杨辉三角 题解
题目描述:给出 n(n≤20),输出杨辉三角的前 n 行。思路:首先要能够想到的是二维数组,然后可以联系到杨辉三角的特性,首先是每一行的第一个和最后一个为1,并且下一行中间的数字为上一行两个的和,有了这两个知识点,就可以开始做题了;首先先定义一个数组,由题可知n小于等于20,那么就定义一个21的数组int a[21][21];int n;cin >> n;for(int i = 1; i <=n;i++){ a[i][1] = 1;//每行第一个为1 a[i][i]原创 2021-02-21 20:55:17 · 1059 阅读 · 1 评论 -
P1426 小鱼会有危险吗
题目:有一次,小鱼要从 A 处沿直线往右边游,小鱼第一秒可以游 7 米,从第二秒开始每秒游的距离只有前一秒的 98%。有个极其邪恶的猎人在距离 A 处右边s 米的地方,安装了一个隐蔽的探测器,探测器左右 x 米之内是探测范围。一旦小鱼进入探测器的范围,探测器就会在这一秒结束时把信号传递给那个猎人,猎人在一秒后就要对探测器范围内的水域进行抓捕,这时如果小鱼还在这范围内就危险了。也就是说小鱼一旦进入探测器范围,如果能在下 1秒的时间内马上游出探测器的范围,还是安全的。现在给出 s和 x 的数据,请你判断小鱼会原创 2021-02-20 17:40:35 · 211 阅读 · 1 评论 -
判断质数的方法
判断质数的方法1.朴素一点,复杂度高一点的办法bool isprime(int n){for(int i = 2;i < n;i++){ if(n % i ==0) { cout << "不是质数" << endl; return false; }}return true;}2.高级一点的方法,现在还不是特别理解,可以记一下bool isprime(int i){ if (i <= 1)return false; if (i ==原创 2021-02-19 23:13:31 · 190 阅读 · 0 评论 -
洛谷P1478,陶陶摘苹果(升级版)
题目:又是一年秋季时,陶陶家的苹果树结了 n 个果子。陶陶又跑去摘苹果,这次他有一个 a 公分的椅子。当他手够不着时,他会站到椅子上再试试。这次与 NOIp2005 普及组第一题不同的是:陶陶之前搬凳子,力气只剩下 s 了。当然,每次摘苹果时都要用一定的力气。陶陶想知道在 s<0 之前最多能摘到多少个苹果。现在已知 n 个苹果到达地上的高度 x,椅子的高度 a,陶陶手伸直的最大长度 b,陶陶所剩的力气ss,陶陶摘一个苹果需要的力气 y,求陶陶最多能摘到多少个苹果。输入格式第 1 行:两个数原创 2021-02-19 22:26:14 · 556 阅读 · 0 评论 -
洛谷P1055 ISBN号码
洛谷P1055 ISBN号码题目如下:每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括999位数字、111位识别码和333位分隔符,其规定格式如x-xxx-xxxxx-x,其中符号-就是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如000代表英语;第一个分隔符-之后的三位数字代表出版社,例如670670670代表维京出版社;第二个分隔符后的五位数字代表该书在该出版社的编号;最后一位为识别码。原创 2021-02-19 20:22:16 · 93 阅读 · 0 评论 -
洛谷P1219 [USACO1.5]八皇后 Checker Challenge
拖了很久的八皇后问题,这还是简化版的题目,简单记录一下,虽然能写出来代码,但八皇后的问题解决的还是不够清晰,没有上一道三连击题目清晰,下面贴出题目:一个如下的 6×6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。上面的布局可以用序列2 4 6 1 3 5来描述,第i个数字表示第i行的相应位置有一个棋子,如下:行号 1 2 3 4 5 6列号 2 4 6 1 3 5这只是棋子放置的一个解。请编一个程序找出所有棋子防止的原创 2021-02-12 17:16:16 · 370 阅读 · 2 评论