随笔分类 -  noi OpenJudge

 
8468:单词序列
摘要:(4.7算法之搜索) (4.7算法之搜索) (4.7算法之搜索) 8468:单词序列 总时间限制: 1000ms 内存限制: 1024kB描述 给出两个单词(开始单词和结束单词)以及一个词典。找出从开始单词转换到结束单词,所需要的最短转换序列。转换的规则如下: 1、每次只能改变一个字母 2、转换过程 阅读全文
posted @ 2016-08-15 11:02 noip之路 阅读(1298) 评论(0) 推荐(0)
6264:走出迷宫
摘要:总时间限制: 1000ms 总时间限制: 1000ms 内存限制: 65536kB描述 当你站在一个迷宫里的时候,往往会被错综复杂的道路弄得失去方向感,如果你能得到迷宫地图,事情就会变得非常简单。 假设你已经得到了一个n*m的迷宫的图纸,请你找出从起点到出口的最短路。 输入第一行是两个整数n和m(1 阅读全文
posted @ 2016-05-20 16:59 noip之路 阅读(1294) 评论(0) 推荐(0)
2753:走迷宫
摘要:总时间限制: 总时间限制: 1000ms 内存限制: 65536kB描述一个迷宫由R行C列格子组成,有的格子里有障碍物,不能走;有的格子是空地,可以走。给定一个迷宫,求从左上角走到右下角最少需要走多少步(数据保证一定能走到)。只能在水平方向或垂直方向走,不能斜着走。输入第一行是两个整数,R和C,代表 阅读全文
posted @ 2016-05-18 16:23 noip之路 阅读(1729) 评论(0) 推荐(0)
1943(2.1)
摘要:分析:枚举 条件: 1<a,b,c<=100; a<=b; a*a + b*b = c*c 枚举 a:2~100;b:a~100. 根据输出要求,先枚举a,再枚举b #include<cstdio> #include<cmath> int main(){ int a,b,c; for (int a= 阅读全文
posted @ 2016-02-26 18:26 noip之路 阅读(177) 评论(0) 推荐(0)
13:整数去重(1.9)
摘要:分析: 方法1:先使用数组a记录,然后使用双重循环逐个比较,把不重复的数值记录到b中。时间复杂度O(n^2)(n=10000)超时; 方法2:先使用数组a记录,然后对数组进行排序。再扫描一遍a,将不重复的数值记录在b数组. STL里面有个sort函数,sort 可以对给定区间所有元素进行排序,默认的 阅读全文
posted @ 2016-02-18 18:04 noip之路 阅读(2327) 评论(2) 推荐(0)
12
摘要:使用数组 #include<cstdio> #include<cstring> int a[1100]={0}; int main(){ int x,y,n,maxn=-1,num=1; scanf("%d",&n); scanf("%d",&a[0]); for(int i=1;i<=n-1;i+ 阅读全文
posted @ 2016-02-18 17:09 noip之路 阅读(188) 评论(0) 推荐(0)
11:连续出现的字符(1.9)
摘要:题目没有说明是什么字符,但ascii码是0~255,可以直接定义一个数组a[1000]. 如何记录字符连续出现的次数? 逐字符扫描,定义一个变量记录,初值为1 #include<cstdio> #include<cstring> char s[1100]; int a[1100]={0}; int 阅读全文
posted @ 2016-02-18 17:06 noip之路 阅读(862) 评论(0) 推荐(0)
06笨小猴(1.9)
摘要:注意: 字符串的第一个字符存在下标为0处 字符出现次数的统计方法,定义一个数组ch[26] 下标分别对应‘a’..'z' 方法char c='a'; c-96=1,因为此时c的ASCII码参与运算 读完再扫描,注意字符出现的次数为0的应该去掉 #include<cstdio> #include<cs 阅读全文
posted @ 2016-02-17 19:49 noip之路 阅读(565) 评论(0) 推荐(0)
02:输出最高分数的学生姓名(1.9)
摘要:边读入,边处理,不需要保存数据 #include<cstdio> #include<cstring> char name[100],sname[100]; int main(){ int n,score,maxn=-1; scanf("%d",&n); for (int i=1;i<=n;i++){ 阅读全文
posted @ 2016-02-17 18:21 noip之路 阅读(1159) 评论(0) 推荐(1)
03 不高兴的津津(1.9)
摘要:从题目可以看出,该程序不需要存储数据, 定义两个变量t=0和d=0,分别记录周几和每天的学习时间,边读入边比较即可。 #include<cstdio> int main(){ int x,y,t=0,d=0; for (int i=1;i<=7;i++){ scanf("%d%d",&x,&y); 阅读全文
posted @ 2016-02-17 16:38 noip之路 阅读(455) 评论(0) 推荐(0)
01:查找特定的值(1.9)
摘要:从题目可以看出必须用数组存储数据。 数组定义 int a[10010](说明,比题目要求的10000,大一点,防止访问越界) #include<cstdio> int a[10010]; int main(){ int n,x; scanf("%d",&n); for (int i=1;i<=n;i 阅读全文
posted @ 2016-02-17 16:08 noip之路 阅读(814) 评论(0) 推荐(1)
1813(2.1)
摘要:枚举的第5题,咋一看没有思路。仔细研究样列,又找到了该游戏 ,实践了一下,才稍微有些思路。 实际上答案基本在题干中:根据上面的规则,我们知道1)第2次按下同一个按钮时,将抵消第1次按下时所产生的结果。因此,每个按钮最多只需要按下一次;2)各个按钮被按下的顺序对最终的结果没有影响;3)对第1行中每盏点 阅读全文
posted @ 2016-02-17 15:34 noip之路 阅读(289) 评论(0) 推荐(0)
1812
摘要:分析: 首先考虑枚举那些量,如果四个变量全部枚举,则肯定超时。 那么是枚举bcd呢,还是枚举其它? 输出要求:请按照a的值,从小到大依次输出。当两个完美立方等式中a的值相同,则b值小的优先输出、仍相同则c值小的优先输出、再相同则d值小的先输出。 据此最好按 abc的顺序枚举,其中a>c>=b. 另外 阅读全文
posted @ 2016-02-16 15:56 noip之路 阅读(207) 评论(0) 推荐(0)
1809两倍(2.1)
摘要:数据非常小,直接枚举即可! #include<cstdio> int a[30]; int main(){ int n=1; scanf("%d",&a[n]); while (a[n]!=0){ n++; scanf("%d",&a[n]); } n=n-1; int sum=0; for (in 阅读全文
posted @ 2016-02-16 14:08 noip之路 阅读(529) 评论(0) 推荐(0)
1752:鸡兔同笼(2.1)
摘要:最朴素的方法: #include<cstdio> int main(){ int a,maxn=-1,minn=32769; scanf("%d",&a); if (a%2==0) maxn=a/2; if (a%4==0) minn=a/4; for (int t=1;t<=a/4;t++) fo 阅读全文
posted @ 2016-02-16 13:27 noip之路 阅读(712) 评论(0) 推荐(0)
1749:数字方格(2.1)
摘要:简单枚举 数据范围: (0 <= n <= 100) 所以不需要加任何优化 #include<iostream> #include<cstdio> int main(){ int maxh=-100,a1,a2,a3,n; scanf("%d",&n); for (int i=n;i>=0;i--) 阅读全文
posted @ 2016-02-16 12:15 noip之路 阅读(552) 评论(0) 推荐(0)
08:石头剪刀布(1.6)
摘要:分析:一、赢输平三种情况0表示“石头”,2表示“剪刀”,5表示“布赢t:0-2=-22-5=-35-0=5输t:2-0=25-2=30-5=-5平t:两边的值相等二、计算出拳情况,然后一一对比对于测试数据,猜拳过程为:A:0 2 5 0 2 5 0 2 5 0B:0 5 0 2 0 5 0 2 0 ... 阅读全文
posted @ 2016-01-21 15:17 noip之路 阅读(809) 评论(0) 推荐(0)
05:年龄与疾病(1.6)
摘要:温馨提示:如何输出%?即两个%连写代表%,尝试输出printf(“%%”)方法1:先存储数据再处理,定义4个变量记录4个年龄段的人数,初值为0#includeint a[110];int main(){ int n; scanf("%d",&n); int temp; for... 阅读全文
posted @ 2016-01-20 09:25 noip之路 阅读(1772) 评论(0) 推荐(0)