
NOI
文章平均质量分 70
宴夜小丑
这个作者很懒,什么都没留下…
展开
-
NOI:253 丛林里的路
原题链接 题解:最小生成树算法Kruskal以及并查集的思想,对所有边排序,并且依次判断每条边两个点的所属类别,不同即合并,如果边数等于n-1即为结束#include <stdio.h>#include <iostream>#include <string>#include <algorithm>#include ...原创 2018-07-24 18:47:32 · 556 阅读 · 0 评论 -
NOI:2806 二分法求函数的零点
题目链接题解:二分法注意:double判断大小应该用差值小于某个数来进行判断#include <stdio.h>#include <iostream>#include <cmath>using namespace std;double test(double k){ return pow(k,5)-15*pow(k,4)+85*pow(k,3)-...原创 2018-05-29 21:59:08 · 942 阅读 · 0 评论 -
NOI:7940 最接近的元素
题目链接题解:二分法是基本的查找算法,这道题是经典的二分法求解,一定要掌握!!!#include<cstdio>#include<cmath>#include<iostream>using namespace std;int n,m,number,l,r,mid;long long a[100005];int main(){ cin>&...原创 2018-05-29 21:42:34 · 509 阅读 · 0 评论 -
NOI:7549 单词的长度
题目链接题解:做法比较巧妙,可以应用到任何一道题判断多个空格的情况 #include<iostream> #include<cstring> #include<cstdio> using namespace std; char a[2001]; int s; int main() { gets(a); int l=strlen(...原创 2018-05-29 17:03:02 · 481 阅读 · 0 评论 -
NOI:6247 过滤多余的空格
题目链接题解:这道题并不难,这个做法比较巧妙,可以学习一下 #include<cstring> #include<iostream> #include<cstdio> using namespace std; char a[501]; bool b[501]; int main() { gets(a); for(int i=0;...原创 2018-05-29 16:57:40 · 1229 阅读 · 0 评论 -
NOI:1946 单词替换
题目链接题解:可以使用getchar()或者使用单词分割find()和substr()#include <stdio.h>#include <iostream>#include <string>using namespace std;int main(){ string a[105]; char t; t=getchar(); ...原创 2018-05-29 16:52:12 · 643 阅读 · 0 评论 -
NOI:1745 字符串判等
题目链接题解:输入函数的应用getchar()和getline()的不同应用,以及tolower()#include <stdio.h>#include <iostream>#include <string>using namespace std;void test1(){ char a; a=getchar(); string ...原创 2018-05-29 16:41:20 · 874 阅读 · 0 评论 -
NOI:7625 三角形最佳路径问题
题目链接题解:动态规划,每个点的最大值等于下方或者右下的最大值注意:假如只有一行时,应该等于唯一的一个数#include <stdio.h>#include <iostream>#include <string>using namespace std;int a[105][105],b[105][105];int size;int set(int x...原创 2018-05-27 18:52:41 · 528 阅读 · 0 评论 -
NOI:2728 摘花生
题目链接题解:动态规划,每个点的最大花生数等于走东和走南两条路的最大花生数,终点的花生数就是她本身的花生数量,从终点依次往上推,就可以得出起始点的最大数量tmp(i,j)=result[i][j]=max(tmp(i,j+1),tmp(i+1,j))+orig[i][j];#include <stdio.h>#include <iostream>us...原创 2018-05-27 18:27:07 · 438 阅读 · 0 评论 -
NOI:3532 最长上升子序列和
题目链接题意:仿照最长上升子序列求解,以k为终点的最长上升子序列。不过在这里是求最长上升子序列的和,不是长度,所以以和判断大小#include <stdio.h>#include <iostream>using namespace std;int a[1005],b[1005];int n;int tmp(int k){ if(b[k]!=0)return...原创 2018-05-27 18:13:00 · 321 阅读 · 0 评论 -
NOI:8787 数的划分
题目链接题解:类似于分苹果,m个苹果n个盘子,分为三种情况,苹果==0||盘子==1,苹果大于等于盘子,苹果小于盘子#include <stdio.h>#include <iostream>#include <algorithm>#include <cmath>using namespace std;int n,k;int tmp[5];...原创 2018-05-27 18:04:09 · 539 阅读 · 0 评论 -
NOI:3528 最小新整数
题目链接:http://noi.openjudge.cn/ch0406/3528/3528:最小新整数总时间限制: 1000ms 内存限制: 65536kB描述给定一个十进制正整数n(0 < n < 1000000000),每个数位上数字均不为0。n的位数为m。现在从m位中删除k位(0<k < m),求生成的新整数最小为多少?例如: n = 9128456, k = 2, ...转载 2018-05-22 23:16:42 · 315 阅读 · 0 评论 -
NOI:8469 特殊的密码锁
特殊密码锁描述 有一种特殊的二进制密码锁,由n个相连的按钮组成(n<30),按钮有凹/凸两种状态,用手按按钮会改变其状态。然而让人头疼的是,当你按一个按钮时,跟它相邻的两个按钮状态也会反转。当然,如果你按的是最左或者最右边的按钮,该按钮只会影响到跟它相邻的一个按钮。当前密码锁状态已知,需要解决的问题是,你至少需要按多少次按钮,才能将密码锁转变为所期望的目标状态。输入 两行,给出两个由0、1组...转载 2018-05-22 23:03:34 · 715 阅读 · 0 评论 -
NOI:2704 寻找平面上的极大点
题目链接:http://noi.openjudge.cn/ch0406/2704/题意:根据提示,只有位于单独颜色上的点或者说只有右上角的点才是极大点,所以我对每一个点与x和y轴组成的矩形进行标记,将其中每个点的标记值++,最后只有标记值为1的点,才是我们要找的点#include <stdio.h>#include <iostream>#include <stri...原创 2018-05-22 22:05:28 · 679 阅读 · 0 评论 -
NOI:2469 电池的寿命
题目链接:http://noi.openjudge.cn/ch0406/2469/分析:对于每一组数据只要判断最大的那个数是不是比其余的数的和都要大,如果成立的话那当然就是剩下的所有电池与最大的电池车轮战,最大为n-1个数的和,如果不成立的话那么最大就是n个数的和的一半,也就是说电池是一定可以全部用完的。简单的证明过程,每次先对N个数进行排序,然后最大电池每次与其余电池(从高到低)PK一小时,如此...转载 2018-05-22 21:46:33 · 712 阅读 · 1 评论 -
NOI:1930 素数回文数的个数
转载:https://blog.youkuaiyun.com/tigerisland45/article/details/70236364问题链接:POJ NOI0113-05 素数回文数的个数。原题出处:Bailian2928 素数回文数的个数。总时间限制:1000ms内存限制:65536kB描述求11到n之间(包括n),既是素数又是回文数的整数有多少个。输入一个大于11小于1000的整数n。输出11到n之...转载 2018-05-29 22:32:10 · 1505 阅读 · 0 评论 -
NOI:1526 宗教信仰
原题链接题解:并查集的基本应用并查集:find和merge两个基本方法注意每次查找的都是根的值,每次合并都是将根的值赋值为新的集合#include <stdio.h>#include <iostream>using namespace std;int fa[50005],n,m,p;int find(int x){ if(fa[...原创 2018-07-24 17:35:03 · 409 阅读 · 0 评论 -
NOI:1813 熄灯问题
题解链接题解:跟poj的1753类似(https://blog.youkuaiyun.com/wuzhenzi5193/article/details/80044425),不过需要将结果保存下来 这里的枚举只需要枚举第一行即可,然后每次后面的枚举都需要根据前一行来进行判断是否需要按灯注意:按一个灯会改变周围的状态,但是注意此时只按了这一个灯,周围只是改变状态并没有按灯 每次从第...原创 2018-06-01 00:06:20 · 1098 阅读 · 0 评论 -
NOI:2899 计算字符串距离
题目链接转载:https://blog.youkuaiyun.com/qq_26919935/article/details/779706852988:计算字符串距离总时间限制: 1000ms 内存限制: 65536kB 描述 对于两个不同的字符串,我们有一套操作方法来把他们变得相同,具体方法为: 修改一个字符(如把“a”替换为“b”) 删除一个字符(如把“traveling”变为“travelng”)比如对...转载 2018-06-07 23:58:06 · 325 阅读 · 0 评论 -
NOI:8214 正整数的任意进制转换
题目链接题解:高精度计算,直接使用进制q取余即可,无需转换成10进制#include <iostream>#include <stdio.h>#include <algorithm>#include <string>#include <cmath>using namespace std;char x[10000];int y...原创 2018-05-30 13:04:08 · 1848 阅读 · 0 评论 -
NOI:7606 除以13
题目链接题解:大整数除法,以数组的形式一位一位进行操作注意:商中0的输出,即当某位不够13的时候,要商0#include <stdio.h>#include <iostream>#include <string>using namespace std;int main(){ int a[105]; string s; cin>...原创 2018-05-30 11:41:53 · 624 阅读 · 0 评论 -
NOI:2178 判决素数的个数
题目链接题解:基本题目,掌握判断素数#include <stdio.h>#include <iostream>#include <cmath>using namespace std;bool set(int t){ if(t==1) return false; if(t==2) return true; if(t%2==0) re...原创 2018-05-30 11:06:27 · 486 阅读 · 0 评论 -
NOI:1953 循环数
题目链接题解:高精度乘法;判断字符串是否存在子串(首尾相连)注意:数字串是2-60位,所以只可以使用数组进行运算,即高精度乘法,一位一位去运算进位和结果,并且在做题的时要注意每次是对原数进行乘法,而不是上一次乘法的结果进行乘法,所以使用a[]进行每次计算,用b[]记录每次乘法结果;然后将字符串首尾相连,s+s判断里头是否含有运算出来的结果字符串find(str,0)#include <std...原创 2018-05-30 10:45:25 · 434 阅读 · 0 评论 -
机试NOI:动态规划
2.6 基本算法之动态规划NOI:2988 计算字符串距离(递推):https://blog.youkuaiyun.com/wuzhenzi5193/article/details/80616930NOI:666 放苹果:https://blog.youkuaiyun.com/wuzhenzi5193/article/details/80327677NOI:8787 数的划分:https://blog.csd...原创 2018-06-08 10:56:09 · 399 阅读 · 0 评论 -
NOI:8783 单词接龙
题目链接8783:单词接龙总时间限制: 1000ms 内存限制: 65536kB描述单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如beast和astonish,如果接成一条龙则变为beastonish,另外相邻的两部分不能存在包含关系,...转载 2018-06-05 22:27:10 · 782 阅读 · 0 评论 -
NOI:7084 迷宫问题
题目链接题解:简单的BFS问题,寻找最短路使用BFS tips:打印路径从终点开始找路,每次保存父节点,则从起点可以打印路径#include <stdio.h>#include <iostream>using namespace std;bool visi[5][5];int matrix[5][5],fa[5][5];int position[4...原创 2018-06-05 21:57:43 · 1526 阅读 · 0 评论 -
机试NOI:基本算法
NOI 1.11-2.5 基本算法学习,不断更新ing1.11 编程基础之二分查找NOI:7940 最接近的元素(经典二分法思想):https://blog.youkuaiyun.com/wuzhenzi5193/article/details/80502639NOI:2806 二分法求函数的零点(二分法思想):https://blog.youkuaiyun.com/wuzhenzi5193/article/detail...原创 2018-06-03 12:08:20 · 1669 阅读 · 0 评论 -
NOI:1817 城堡问题
题目链接转载地址:https://blog.youkuaiyun.com/qq_16964363/article/details/79153283题解:DFS求解连通问题,三维数组存储房间四面墙#include<cstdio> #include<cstring> bool cant[60][60][4]={0},vis[60][60]={0}; int row[4]={0,...转载 2018-06-05 21:34:52 · 554 阅读 · 0 评论 -
NOI:7909 统计数字
转载:https://blog.youkuaiyun.com/hg_zhh/article/details/54944121题目链接题解:数据范围(long long -922337203685775808~922337203685775807) map使用方法(map[m]++)#include<iostream>#include<cstdio>#include...转载 2018-06-05 21:22:45 · 671 阅读 · 0 评论 -
NOI:7891 一元三次方程求解
题目链接题解:二分法求根,浮点数精度#include <stdio.h>double a,b,c,d;inline double sol(double x){ return a*x*x*x+b*x*x+c*x+d;}double query(double l,double r,bool f){//二分法求根 double mid=0.00; while(...转载 2018-06-05 20:58:52 · 1111 阅读 · 0 评论 -
NOI:1797 金银岛
题目链接:http://noi.openjudge.cn/ch0406/1797/典型的贪心问题题解:每次选择价值/重量比最大的,注意精确到小数点后2位,所以需要使用double#include <stdio.h>#include <iostream>#include <string>#include <iomanip>#include &l...原创 2018-05-22 21:36:42 · 876 阅读 · 0 评论 -
NOI:8758 装箱问题
题目链接题解:每个物品放与不放两种情况,注意物品可能没有空余地方放进去了#include <stdio.h>#include <iostream>using namespace std;int v,n;int a[35];int wigh[20005];int set(int k,int number){ if(number-a[k]<0)//这个...原创 2018-05-27 17:09:48 · 377 阅读 · 0 评论 -
NOI:7832 最接近的分数
转载:https://blog.youkuaiyun.com/tigerisland45/article/details/71157783问题链接:POJ NOI MATH-7832 最接近的分数。总时间限制:1000ms内存限制:65536kB描述分母不超过 N 且 小于 A/B 的最大最简分数是多少?输入三个正整数N,A,B,相邻两个数之间用单个空格隔开。1 <= A < B < N &...转载 2018-05-14 21:36:22 · 2585 阅读 · 0 评论 -
NOI:1978 生理周期
题解:从k+1开始枚举,如果是体力的周期再判断是否是情感的周期,再判断是否是智力的周期#include <stdio.h>#include <iostream>using namespace std;int main(){ int p,e,i,d; scanf("%d%d%d%d",&p,&e,&i,&d); ...原创 2018-05-14 21:20:27 · 897 阅读 · 0 评论 -
NOI:3343 热血格斗场
题意:类似于冷血格斗场,但是每个力量只出现一次,判断起来更简单, 学习使用lower_bound和upper_bound#include <iostream>#include <map>#include <cmath>#include <algorithm>#include <cstdio>#include &l...原创 2018-05-20 17:54:31 · 3273 阅读 · 2 评论 -
NOI:6377 生日相同2.0
思路:使用结构体进行解题,在这里我使用的比较麻烦的set和map为了判重和排序,也可以直接使用结构体和数组,保存[12][31]这种形式 注意重名,我最后5分就卡在了重名上#include <stdio.h>#include <iostream>#include <vector>#include <algorithm>#in...原创 2018-05-14 00:20:51 · 977 阅读 · 0 评论 -
NOI:3344 冷血格斗场
转载:https://blog.youkuaiyun.com/arkhamorginal/article/details/51968551题目链接:http://noi.openjudge.cn/ch0309/3344/ 为了迎接08年的奥运会,让大家更加了解各种格斗运动,facer新开了一家冷血格斗场。格斗场实行会员制,但是新来的会员不需要交入会费,而只要同一名老会员打一场表演赛,证明自己的实力。 我们...转载 2018-05-20 00:27:37 · 918 阅读 · 0 评论 -
NOI:1806 词典
转载:https://blog.youkuaiyun.com/sinat_34550050/article/details/51103845题目链接:http://noi.openjudge.cn/ch0309/1806/1806:词典总时间限制: 3000ms 内存限制: 65536kB描述你旅游到了一个国外的城市。那里的人们说的外国语言你不能理解。不过幸运的是,你有一本词典可以帮助你。输入首先输入一个词典...转载 2018-05-19 23:42:40 · 544 阅读 · 0 评论 -
NOI:2729 Blah数集
转载:https://blog.youkuaiyun.com/qq_35640373/article/details/70168609题目链接:http://noi.openjudge.cn/ch0304/2729/总时间限制: 3000ms内存限制: 65536kB描述大数学家高斯小时候偶然间发现一种有趣的自然数集合Blah,对于以a为基的集合Ba定义如下:(1) a是集合Ba的基,且a是Ba的第一个元素;...转载 2018-05-19 22:55:35 · 380 阅读 · 0 评论 -
NOI:6731 啤酒厂选址
思路:暴力迭代,对于每个居民作为厂进行计算运输费用注意:注意计算两点的距离的时候,计算顺时针距离和逆时针距离然后取两者最短 注意输入的是两点之间的距离,使用时记得进行处理转换 变量的清空,初始化,每次循环迭代时注意清零#include <stdio.h>#include <iostream>#include <cmath>u...原创 2018-05-13 21:45:24 · 1910 阅读 · 0 评论