OJ
文章平均质量分 63
夜里的柚子
“ 在荒谬被证实以前,都只是暗室里的装饰。只有眼前亮起来了以后,才有机会彰显它的价值不是谁能决定的。”
展开
-
<NOIP> 1 . P1000 超级玛丽游戏
题解:这是洛谷的第一题,也告诉大家开始了新的关于编程能力的提升的征程。源代码:#include using namespace std;int main(){ cout << " ********" << endl; cout << " ************" << endl; cout <<原创 2017-06-28 23:57:18 · 722 阅读 · 0 评论 -
<NOIP> 16 . P1055 ISBN号码
题解:这是洛谷的第16道题目,从这道题开始就是考察字符串的使用了。注意1 . 这道题目没有什么难度,根据题意把字符串的字串提取出来,再进行转换成int变量,进行计算即可。2 . 如果余数为10,则识别码为大写字母为X;如果最后的结果正确,请输出“Right”;(注意这里的“Right”的大小写)源代码;#include #include #include #include原创 2017-06-30 15:25:20 · 642 阅读 · 0 评论 -
<NOIP> 17 . P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He…
题目:这是洛谷的第17道题目,将输入的字符串提取出来,转换成小写的字符,进行乘法运算,然后比较两个数与47的求余即可。源代码:#include #include #include #include using namespace std;#define MIDDLE 64#define VALUE 47int main(){ int sum1 = 1,sum2原创 2017-06-30 15:32:19 · 409 阅读 · 0 评论 -
<NOIP> 18 . P1308 统计单词数
题解:这是洛谷的第18道题目,因为在很多文本编辑工具中都有查找的功能,也有计数的功能。所以,这方面的练习对于之后想做文本编辑器也是很有帮助的。注意1 . 我们在选择输入变量的类型时,应该不直接使用std::string,因为在输入的字符串中存在空格,std::string不识别空格,应该先用char作为输入,然后赋值给std::string;2 . 字符串中,可能存在大写或者小写。因此原创 2017-06-30 15:34:47 · 507 阅读 · 0 评论 -
<NOIP> 19 . P1553 数字反转(升级版)
题解:这是洛谷的第19道题目,这个题目的Testcase有很多都想不到,可谓千奇百怪。注意1 . 整数的最高位不能为0;2 . 反转后的小数的整数部分的最高位不能为0,小数部分的末尾不能为0,除非小数部分都是0,则保留一个0;3 . 反转后的分数的分子和分母不用约分,同样,分子和分母各自的最高位都不为0;4 . 小数的输入存在这种测试用例:1020.0101000 ,输出为:原创 2017-06-30 15:44:34 · 600 阅读 · 0 评论 -
<NOIP> 20 . P1598 垂直柱状图
题解:这是洛谷的第20道题目,本题的难点不在于字符的统计,而是星号字符的打印。注意1 . 我们可以这样来,假设我们已经做完了字符的统计。2 . 按行输出:因为最终输出的都是最后一行平齐,所以我们可以在字符统计中得到出现次数最多的字符和出现的次数N,遍历A到Z,哪个字符能出现N次,打印“*”;接着,再遍历A到Z,哪个字符出现了的次数大于等于N-1,输出“*”。直到N==0。源代码:原创 2017-06-30 15:53:45 · 381 阅读 · 0 评论 -
<NOIP> 21 . P1914 小书童——密码
题解:这是洛谷的第21道题目,本题的重点是当字符为‘Z’时,它的下一位是‘A’。源代码:#include #include #include #include #include using namespace std;int main(){ int movenumber; string password; char *Realpassword =原创 2017-06-30 16:05:29 · 366 阅读 · 0 评论 -
<NOIP> 22 . P1028 数的计算
题解:这是洛谷的第22道题目,考察的是递归。注意:一开始的时候,我没有理解这个题目的意思。举个例子应该能好说点:假设现在有一个自然数6,不大于6的一半的自然数是,所以给它的左边加上这个数字,即为。然后,对于16这个数字,由于刚才加的数字是“1”,所以不大于1的一半的自然数是不存在的。然后回溯到26这个数字,由于刚才加的数字是“2”,所以不大于2的一半的自然数是1,所以数字为126,然后对于12原创 2017-06-30 16:11:07 · 592 阅读 · 0 评论 -
<NOIP> 23 . P1036 选数
题解:这是洛谷的第23道题目,考察的是递归(非递归的方式没有尝试)。注意1 . 将索引值全排列(注意“1,2,3和1,3,2”是一种情况)2 . 这里使用的是STL的next_permutation(有点投机取巧、大家可以试试手动全排列)3 . 把得到的数值进行素性测试源代码:#include #include #include #include using na原创 2017-07-02 22:12:18 · 388 阅读 · 3 评论 -
<NOIP> 24 . P1149 火柴棒等式
题解:这是洛谷的第24道题目。注意1 . 这里从题目中得到一个公式:“组成A的火柴棒+组成B的火柴棒 = 组成C的火柴棒,并且A+B=C”;2 . 因为数字最大为999,所以我们可以从0~999进行遍历,找到满足上述等式的数字;3 . 组成0~9的火柴棒为: 0:6 1:2 2:5 3:5 4:4 5:5 6:6 7:3 8:7 9:6源代码#include #incl原创 2017-07-02 22:16:48 · 346 阅读 · 0 评论 -
<NOIP> 25 . P1217 [USACO1.5]回文质数 Prime Palindromes
题解:这是洛谷的第25道题目,关于这个题,我的方法有点Low,就是第一构造回文数,第二素性测试(虽然AC了,但是感觉好丢人)。源代码#include #include #include #include using namespace std;#define DATA_TYPE unsigned long longDATA_TYPE The_Multiplicat原创 2017-07-02 22:22:16 · 325 阅读 · 0 评论 -
<NOIP> 26 . P1478 陶陶摘苹果(升级版)
题解:这是洛谷的第26道题目,其实题干就是“最大可以摘到多少苹果”以及“凳子的高度+手臂的长度>=苹果的高度”,还有体力最小为0。注意1 . “最大可以摘到多少苹果”提示:需要将每一行的数据按照第二列排列(按照体力的顺序来排列);2 . 排列完之后,按照上述的规则判断;源代码:#include #include #include #include #include原创 2017-07-04 23:24:39 · 470 阅读 · 0 评论 -
<NOIP> 27 . P1618 三连击(升级版)
题解:这道题是洛谷的第27道题目,我是感觉不需要递归全排列,依旧是暴力即可。源代码:#include #include #include using namespace std;#include #include using namespace std;bool check(int *first, int *second){ if (first[0] !=原创 2017-07-04 23:28:43 · 371 阅读 · 0 评论 -
<NOIP> 28 . P1579 哥德巴赫猜想(升级版)
题解:这是洛谷的第28道题目,直接暴力计算、输出即可。注意1 . 首先还是对因子进行素性测试(这样会减少很多不必要的步骤)2 . 然后按照等式筛选素数源代码:#include #include #include #include using namespace std;#define DATA_TYPE unsigned long longDATA_T原创 2017-07-04 23:30:46 · 605 阅读 · 0 评论 -
<NOIP> 15 . P1428 小鱼比可爱
题解:这是洛谷的第15道题目,题目很简单。数组的索引值比自己的小的,然后与每一个元素比个大小即可。注意:第一个数的左边是看不到任何东西的喔。源代码:#include #include using namespace std;int main(){ int N,sum = 0; cin >> N; int *p = new int[N]; for原创 2017-06-30 15:22:59 · 591 阅读 · 0 评论 -
<NOIP> 15 . P1427 小鱼的数字游戏
题目:这是洛谷的第15道题目,依然是考察数组。其实数组作为一种数据结构,非常重要的。正向输入,反向输出,忽略最后的0即可。注意:1 . 如果你用的是size_t来作为循环变量的类型,请注意,换成 int 均可。size_t不管在32位,还是64位的系统下,都是正数。因为反向输出的时候,变量是减少的,等到变量变为0的时候要结束循环,但是这种情况会进入死循环中,导致崩溃。源代码:#in原创 2017-06-30 15:15:44 · 518 阅读 · 0 评论 -
<NOIP> 2 . P1001 A+B Problem
题解:这是洛谷的第二道题,关于a+b的,简单的加法实现。当然洛谷是希望能手动实现加法计算器,来完成a+b的计算。稍后我会更改。源代码:#include using namespace std;int main(){ long long a, b; cin >> a >> b; cout << a + b << endl; return 0原创 2017-06-29 00:00:48 · 275 阅读 · 0 评论 -
<NOIP> 3 . P1421 小玉买文具
题解:这是洛谷的第三道题,考察基本的审题能力和基础编码。源代码:#include using namespace std;int main(){ long long a, b; cin >> a >> b; cout << (10 * a + b) / 19 << endl; return 0;}原创 2017-06-29 00:04:33 · 952 阅读 · 0 评论 -
<NOIP> 4 . P1425 小鱼的游泳时间
题解:这是洛谷的第四题,考察的是对一个标准时间的时间差的计算,有兴趣的话,可以写一个关于时间的函数或者模板类。源代码:#include //#include using namespace std;int main(){ long long a, b, c, d, e, f; cin >> a >> b >> c >> d;原创 2017-06-29 00:07:18 · 3391 阅读 · 0 评论 -
<NOIP> 5 . P1422 小玉家的电费
题解:这是洛谷的第5道题目,考察的是基本的条件语句的使用,以及读题仔细程度。本题有三个条件语句,分别代表不同用电量的收费标准。源代码:#include #include //#include using namespace std;int main(){ long long a; double sum; cin >> a; if (a原创 2017-06-30 11:31:32 · 1645 阅读 · 0 评论 -
<NOIP> 5 . P1085 不高兴的津津
题解:这是洛谷的第6道题目,依然考察的是条件语句。最重要的一句是“一天上课超过8个小时就会不高兴,不高兴不会持续到第二天”,因此需要删选不高兴的时间小于8个小时的,以及每天上课时间最长的。源代码:#include #include #include using namespace std;int main(){ unsigned int schooltime, mot原创 2017-06-30 11:42:01 · 584 阅读 · 0 评论 -
<NOIP> 6 . P1089 津津的储蓄计划
题解:这是洛谷的第7道题目,考察的还是条件语句。但是这道题目有几个注意的地方:1 . 钱是整数的在妈妈那里存;2 . 不足整数的钱津津要自己保留,计算到下个月;源代码:#include #include #include using namespace std;int main(){ int money,totalMoney = 0; int JING原创 2017-06-30 11:47:05 · 781 阅读 · 0 评论 -
<NOIP> 7 . P1008 三连击
题解:这是洛谷的第8道题目,考察的是循环(while、do while、for)的使用。解决办法:1 . 直接暴力,从100至999,作为可能要输出的第一个数;2 . 第二个数字、第三个数字分别是第一个数字的2、3倍,直接可以生成后两个数字;3 . 筛选(由于三个数的每一个位上的数字都是不同的,并且这三个数字都是三位数)源代码:#include #include us原创 2017-06-30 11:52:27 · 299 阅读 · 0 评论 -
<NOIP> 8 . P1035 级数求和
题目:这是洛谷的第9道题目,考察的还是循环。需要注意的是,因为这是分数计算,所以在加减乘除的过程中,可能有精度损失,因此在初始化变量的时候,给个精度。源代码:#include #include #include using namespace std;int main(){ int i = 0,k; double value = 0.000000; c原创 2017-06-30 12:00:32 · 271 阅读 · 0 评论 -
<NOIP> 9 . P1307 数字反转
题解:这是洛谷的第9道题目,考察的还是循环的使用。数字反转,我们就用简单的取位,放到数组里,然后输出即可。这里有几个问题需要注意:1 . 数字可能是负数(很简单,取个绝对值,反转过来之后加上‘-’即可)源代码:#include #include #include #include using namespace std;int main(){ bool isno原创 2017-06-30 14:43:45 · 607 阅读 · 0 评论 -
<NOIP> 10 . P1423 小玉在游泳
题目:这是洛谷的第10道题,根据题目可以直接列出来一个计算公式 “ sum+=pow(0.98,步数-1)*2 (步数大于2)”。源代码:#include #include #include #include using namespace std;int main(){ double distance; unsigned int counter = 1;原创 2017-06-30 14:47:22 · 1468 阅读 · 0 评论 -
<NOIP> 11 . P1424 小鱼的航程(改进版)
题解:这是洛谷的第11道题目,很简单的一道考察条件语句的问题,直接从题目可以得出来编码过程。源代码:#include #include using namespace std;int main(){ const int morning = 150; const int afternoon = 100; long int day,sum = 0;原创 2017-06-30 14:51:46 · 643 阅读 · 0 评论 -
<NOIP> 12 . P1980 计数问题
题解:这是洛谷的第12道题目,也是考察了循环的使用。从start遍历到end,然后把数字的每一位都提取出来,与待算的数字相比,一致的计数器+1即可。源代码:#include #include using namespace std;int sum(int a,int b){ int iCounter = 0; while (a!=0) {原创 2017-06-30 14:55:07 · 451 阅读 · 0 评论 -
<NOIP> 13 . P1046 陶陶摘苹果
题目:这是洛谷的第13道题目,主要是考察了数组的使用(数据的存储)。直接手臂+凳子的距离来判断即可。源代码:#include #include using namespace std;#define APPLENUMBER 10int main(){ unsigned int Apples[APPLENUMBER]; unsigned int Distan原创 2017-06-30 15:01:43 · 296 阅读 · 0 评论 -
<NOIP> 14 . P1047 校门外的树
题解:这是洛谷的第14道题目,还是考察数组的运用。问题点1 . 注意输入区域的起始点和结束点有重叠的情况2 . 我们可以这样做。树木的索引值一开始被置为1,在第一个区域的起始点(包含)和结束点(包含)内的树木都置为0(代表要移走的数目),在第二个的区域的起始点(包含)和结束点(包含)内的树木都置为0(代表要移走的数目),已经被置为0的树木忽略···直到最后一个区域的起始点和结束点。然后原创 2017-06-30 15:04:12 · 1108 阅读 · 0 评论 -
<NOIP> 29 . P2089 烤鸡
题解:这是洛谷的第29道题目,我这的代码好若鸡。源代码:#include #include #include #include using namespace std;int main(){ bool flag = false; int iCounter = 0; int number,sum = 0; int *a = new int[10原创 2017-07-04 23:34:02 · 401 阅读 · 0 评论