- 博客(29)
- 收藏
- 关注
原创 P2077 红绿灯
https://www.luogu.com.cn/problem/P2077#include <bits/stdc++.h>#include <cstdio>using namespace std;/*路程总和 % 当前红绿灯跟当前绿灯比较,超过就是处于红灯,加上还剩的红灯时间,就表示走过这条路口*/int g[100000], r[100000], dis[100000];int main(){ int n, m, t, mod; //路口个数 起始距.
2021-12-12 14:13:25
551
原创 bfs(广度 迷宫)
用结构体储存坐标,步数定义结构体队列,把初始值定义为已访问,并放入队列队列不为空如果当前坐标等于终点 那就输出步数 并break;循环四个方位如果满足条件新的坐标放入结构体,步数为当前front加1标记为已访问放入队列弹出窗口#include<bits/stdc++.h>#include<queue>using namespace std;char a[1000][1000];int vis[1000][1000];int startx,start
2021-12-07 20:56:48
507
原创 蓝桥公费选拔 T214627 Cm4k3r返屋企
利用广度搜素要注意题目给的样例数字是连在一起的,说明不能用二维整形存储要二维字符串数组存储。既然是字符串数组,那判断的时候就是要判断字符,不是数字。另外,字符数组是从(0,0)开始算的,题目给的坐标是1,1开始算,所以可以把题目给的坐标-1,再存放在队列中#include<bits/stdc++.h>#include<queue>using namespace std;char a[1000][1000];int vis[1000][1000];int sta
2021-12-07 20:48:16
85
原创 dfs(迷宫)
1.算出最短路径#include<bits/stdc++.h>/*5 41 1 2 11 1 1 11 1 2 11 2 1 11 1 1 21 1 4 3*/using namespace std;int a[100][100];int vis[100][100];int book1[100],book2[100];int fx[] = {0,0,1,0,-1};//顺时针 int fy[] = {0,1,0,-1,0};int ans = 9999,sta
2021-12-07 17:23:35
468
原创 P1009 [NOIP1998 普及组] 阶乘之和
https://www.luogu.com.cn/problem/P1009#include<bits/stdc++.h>#include<cstdio>using namespace std;int n,a[100],sum[100];//求阶乘 求和 int main(){ int n; cin>>n; if(n==1) { cout<<1; return 0; } a[0] = 1,sum[0]=1; for(.
2021-12-01 16:22:40
142
原创 背包问题求解
#include<bits/stdc++.h>using namespace std;/*背包问题:在有限的容量里,选择价值最高的物品思路:每件商品,在容量够的情况下,可以装入背包。每次选择的时候,有两种选择的情况(装还是不装) 装:商品减1,容量相减 */int res[5][9] = {0};//储存选了对应物品的价值int weight[5] = {0,2,3,4,5};//每个物品的重量int value[5] = {0,3,4,5,8};//每个物品的价值
2021-11-30 21:28:17
63
原创 P1002 [NOIP2002 普及组] 过河卒
#include<bits/stdc++.h>using namespace std;int m,n,a,b;int ma[22][22],map1[22][22];void bj(int x,int y){ map1[x][y] = 1; map1[x-1][y-2] = 1; map1[x-2][y-1] = 1; map1[x+1][y-2] = 1; map1[x-2][y+1] = 1; map1[x-1][y+2] = 1; map1[x+2][y-1]
2021-11-30 21:27:13
64
原创 游戏类题目
P1789 【Mc生存】插火把https://www.luogu.com.cn/problem/P1789P1838 三子棋Ihttps://www.luogu.com.cn/problem/P1838P1917 三子棋IIhttps://www.luogu.com.cn/problem/P1917P2670 [NOIP2015 普及组] 扫雷游戏https://www.luogu.com.cn/problem/P2670...
2021-11-24 16:54:05
6063
原创 P2669 [NOIP2015 普及组] 金币
https://www.luogu.com.cn/problem/P2669#include<bits/stdc++.h>using namespace std;/*枚举所有的金币数 循环每次加金币数的次数每加一次 天数也要加 然后判断是不是够天数了 退出循环. */int main(){ int k,bi = 0,day = 0;//输入的天数 金币数 当天天数 cin>>k; for(int i = 1;;i++) { for(int.
2021-11-24 15:48:18
319
原创 全排列(P2524 Uim的情人节礼物·其之弐 P2525 Uim的情人节礼物·其之壱)
next_permutation prev_permutationhttps://blog.csdn.net/qq_40679299/article/details/79344050?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0.no_search_link&spm=1001.2101.3001.4242.1或https://blog.csdn.net/l
2021-11-24 14:39:41
265
原创 字符串整形的转换----P1957 口算练习题
https://www.luogu.com.cn/problem/P1957参考资料https://blog.csdn.net/yanyanwenmeng/article/details/82753014https://blog.csdn.net/weixin_42073412/article/details/100866966?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163747435416780255293354%2522%.
2021-11-21 18:18:57
171
原创 栈—应用(回文数)
#include<bits/stdc++.h>using namespace std;int main(){ stack<char>s; string str; cin>>str; //string str = "123565321"; int m = str.size()/2; for(int i = 0;i<m;i++) { s.push(str[i]);//取一半入栈 } if(str.size()%2!=0) { m++;
2021-11-21 13:41:03
653
原创 越界处理题目(P1914 小书童——凯撒密码 [NOIP2016 提高组] 玩具谜题)
字母越界情况。(in[j]-‘a’+n)%26+‘a’in[j]-‘a’:读入中对应的第几个字母的位置 c’对应2(0开始);in[j]-‘a’+n:读入中对应字母加上转移位数得到的字母的对应位置如如’c’这个字母移动3位,就是第二个字母向右移动3个,就是第五个,即’f’取余26是防止移动位数超过26导致炸掉再加上’a’,将对应位置还原字母,再打出来.数字越界情况j = (n + (j - s) % n) % nj-s:当前位置-移动位数得到最终移动的位置(j-s)%n:防止越界,取余数
2021-11-15 19:13:07
4283
原创 P1851 好朋友
https://www.luogu.com.cn/problem/P1851题意输入一个数,从这个数开始,找出两个互相为好朋友数。(这两个数不能一样)好朋友数:两个数的因数和一样(因数把自己剔除)解析首先计算出i因数和的函数,然后再存放在变量t中,之后再求出t的因数和,再判断t的因数和是否与i相等,且不等于i,就可输出。#include <bits/stdc++.h>int Get_Friend(int n) { int i, sum = 0; for (i = 1; i.
2021-11-12 20:06:19
626
2
原创 P1304 哥德巴赫猜想
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-11-05 19:24:31
65
原创 P1296 奶牛的耳语
https://www.luogu.com.cn/problem/P1296注意暴力解法不能AC,要在这基础上进行改善。解析排好序,找到差值大于10的就退出循环,因为是按顺序排好的,第一个不符合,后面就不用继续找。#include <bits/stdc++.h>#include <algorithm>using namespace std;int a[5000001];int main(void) { int n; int d; int count = 0.
2021-10-30 15:17:44
80
原创 X的X次幂等于10
http://www.voidcn.com/article/p-ykhlbfan-ku.html#include<stdio.h>#include<math.h>int main(){ double x; for(x=2.0;x<3.0;x+=0.00000001) { if(fabs(10.0 - pow(x,x)) < 0.000001) printf("%.8lf\n",x); } return 0;}
2021-10-27 20:50:46
79
原创 P1150 Peter的烟
https://www.luogu.com.cn/problem/P1150题意:输入n个烟,每k个烟蒂(抽完的烟)还能再换一个烟问最终能有多少烟思考:把n除k个,然后把剩余的数加起来,要是余数够的话,总数还要加1 10 210 / 2 = 55 / 2 = 2 ~~ 12 / 2 = 1 10 + 5 + 2 + 1int main(){ int n,k,temp,p = 0; scanf("%d%d",&n,&k); temp = n /.
2021-10-27 19:57:32
722
原创 P1146 硬币翻转
https://www.luogu.com.cn/problem/P1146思路找规律40111 翻转最后三个,第一个不翻转1100 翻转除第二个以外,第二个不翻转0001 翻转前两个 和最后一个,第三个不翻转1111 翻转前三个,最后一个不翻转int main(){ int n,a[10001] = {0},count ; scanf("%d",&n); count = n; for(int i = 1;i<=n;i++) //取每个数 { for(.
2021-10-27 15:28:11
95
原创 P1116 车厢重组
https://www.luogu.com.cn/problem/P1116思路4 3 2 1 根据题意 每次移动两个 3 4 2 1 3 2 4 13 2 1 42 3 1 42 1 3 41 2 3 4可发现跟冒泡步骤一样。#include<stdio.h>int main(){ int n,a[10001],temp,count = 0; scanf("%d",&n); for(int i = 0;i<n;i++) scanf.
2021-10-27 15:21:33
80
原创 P1089 [NOIP2004 提高组] 津津的储蓄计划
https://www.luogu.com.cn/problem/P1089题意:每个月给你300,然后减去每个月固有的花销,看剩余的够不够100的倍数,够的话就放在妈妈那,然后自己的钱跟着减少。最后放在妈妈那的钱+%20总共算上利息和手里的钱。题解因为这是要每次判断够不够钱,所以可以输入一个输减去剩余的钱。剪完后/100看能分成几个,剩余的钱就取100的余数最后要把钱换成整数,没有小数点。#include<stdio.h>int main(){ int yusua.
2021-10-27 13:34:19
268
原创 P1059 [NOIP2006 普及组] 明明的随机数
https://www.luogu.com.cn/problem/P1059思路去重两个循环,一个循环每个数,一个遍历全部。 找到一样的标记为-1之后在创建一个数组,把不是-1的数 都放在数组里。排序:使用了选择排序。#include <stdio.h>int n, count = 0, b[10001] = {0}, m, q = 0, a[10001] = {0};int quchong(int a[]) { for ( int j = 0; j < n - 1.
2021-10-25 19:25:22
160
原创 P1047 [NOIP2005 普及组] 校门外的树
https://www.luogu.com.cn/problem/P1047思路输入长度为n 和 m个数据 删除m里的数据,然后输出还有多少颗树。解析:可以把用到的数据标记+1,然后找出没有+1的数据。#include<stdio.h>int main(){ int l[10001] = {0},n,m,count = 0; scanf("%d%d",&n,&m); int a[m][2]; for(int i = 0;i<m;i++) for.
2021-10-25 15:58:31
143
原创 P1035 [NOIP2002 普及组] 级数求和
https://www.luogu.com.cn/problem/P1035思路注意要用小数形式接受输出要减去一个#include<stdio.h>int main(){ double k; int i = 1; double sum = 0; scanf("%lf",&k); while(sum<k) { sum = sum + 1*1.0/i; i++; } printf("%d",i-1); return 0;} ...
2021-10-25 15:25:08
906
1
原创 P1014 [NOIP1999 普及组] Cantor 表
https://www.luogu.com.cn/problem/P1014思路首先理解题目主意:输入n,代表第几项,输出那一项的值既然以Z字形编号,那我把每行按Z字形写开第一行: 1/1第二行: 1/2 2/1第三行: 3/1 2/2 1/3第四行: 1/4 2/3 3/2 4/1根据列举,可以发现一些规律。每行个数随着行数增加。分子+分母 = 行数 + 1偶数行 分子 1 —2 分母 2 - 1奇数行 分子 2 —1 分母 1 - 3解题思路求n是什么值,首.
2021-10-25 15:00:04
158
原创 P1614 爱与愁的心痛
https://www.luogu.com.cn/problem/P1614思路首先理解题目主意:输入n个数求m个数的最小和参开思路既然要求m个数最小和,那我们可以从第一个数加m个,同理,第二个数加m个 每次跟最小值比较总共比较n-m+1次(8-3+1)#include<stdio.h>int a[10001];int sum;int min1 = 100001; int main(){ int n,m; scanf("%d%d",&n,&m); .
2021-10-25 14:10:05
254
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人