解题报告
laciqs
这个作者很懒,什么都没留下…
展开
-
Hashmat the Brave Warrior
猥琐的题目,看起来傻子都会,实际有两个陷阱:1. Hashmat's soldier number is never greater than his opponent. 看到这里本以为用b-a就完事了,而input下面还有一句:These two numbers in each原创 2011-07-27 11:16:11 · 1176 阅读 · 0 评论 -
Triangle Wave
简单题,但是要写聪明些可不太简单。大多数人都是分两部写:#include <stdio.h>int main(void){ int n, fre, amp; scanf("%d", &n); while (n--) { scan原创 2011-08-05 10:13:24 · 693 阅读 · 0 评论 -
Where's Waldorf?
开始没看清楚题意,把题看复杂了,于是使用了递归,写完后一看发现自己写的不就是以前自己没看懂的深度优先搜索(DFS)么?后来发现还真是,自己居然“发明”了DFS,而且用的还是递归栈,不禁得意,结果多次WA,不知为何。无奈之下只好拿别人的代码对拍,把样例数据加了点,发现自己的程序得出原创 2011-08-07 16:22:35 · 1392 阅读 · 0 评论 -
Automatic Poetry
不小心秒杀了- -!是我第一个在OJ秒杀的非超级简单题。#include #include #define N 110void make_c1(char s[], char ss[][N], char c1[]){ int k, p, j, c, in; for原创 2011-08-17 18:42:53 · 927 阅读 · 0 评论 -
[NOIP1998]连接多位数
看到这题觉得可以用字符串存储数字,然后用strcmp()排序下就可以秒杀了,然而在两个数字的比较中,如果一者是另一者的“子集”(比如32和321),这样比较就可能会出现问题,于是特殊情况特殊处理。顺便熟悉下cmp函数的编写,之前一直对其返回值模糊不清。#include原创 2011-10-03 22:34:12 · 1758 阅读 · 0 评论 -
Reverse Text
简单题,不过如果用C写却不了解C的输入是不好做对的,特别是不好做巧,需要注意的是数字输入后输入队列中的回车应该丢弃掉,有的人用fflush(stdin);,这是Undefined的先不谈,我的方法比那个简单多了。#include #define N 100int main(void){ int n, i; char s[N]; scanf("%d ", &n);原创 2011-08-06 21:40:52 · 645 阅读 · 0 评论 -
一道排序题
问题:一组数字:21,25,11,32,12,35,55,77,66,写程序按照下面排序。(第1个数最大,第2个数最小,第3个数是剩下数中最大的,第4个是剩下数中最小的……)我的思路:1. 在长度为n的序列中找出最大数和最小数,分别与第一、第二个元素进行交换。2. 递原创 2011-08-05 11:10:36 · 785 阅读 · 0 评论 -
Palindromes
这道题比简单地判断回文难度大不少,我使用的是常量表。需要注意的是不要以为遍历到strlen(s)/2就总是没问题,当strlen(s)=1时就杯具,虽然可以单独判断这种情况,但是此题并不要求效率,所以干脆全遍历了。还有重要的一点就是你要保证所有情况下你的is_mir函数都能返回正原创 2011-08-06 21:41:40 · 521 阅读 · 0 评论 -
猫吃老鼠问题
一只猫每天要抓很多老鼠,但这只猫自从参与躲猫猫游戏之后,喜欢上了躲猫猫游戏,每天让抓到的老鼠排队,然后按照1,3,5,7,9,100……等奇数位吃老鼠,然后在剩下的队列里面,再从头吃1,3,5,7……等奇数位上的老鼠,最后总会剩余一只老鼠,猫会放生这只老鼠,那么为了逃生,写一个程原创 2011-08-05 10:37:34 · 1449 阅读 · 0 评论 -
Hangman Judge
先预处理,否则很容易Bug百出- -。#include #include #define N 100int delete_repetition(char s[]){ int p[26] = {0}, len = strlen(s); while (*s) {原创 2011-08-05 21:24:14 · 920 阅读 · 0 评论 -
The Collatz Sequence
看起来很简单的题目,实际上陷阱不少:1. 最开始的A也算一项。2. 最后的1也算一项。3. 如果某个A>limit,那么此项不计入。4. 3*A+1很可能会溢出(题目迷惑人说A最大为2,147,483,647,还来个解释:the largest value tha原创 2011-08-05 22:09:29 · 2115 阅读 · 0 评论 -
Rotating Sentences
这题昨天晚上写了半天,PE改了就WA,实在不知道哪里WA了,非常郁闷。今天早上继续,但还是过不了,无奈之下只好看了一下别人的代码,发现他的代码竟然用空格来占位,我试了一下竟然AC了- -,可是题目根本没说用空格占位啊,我在输出样例那里又复制又用鼠标划的,也没发现有空格在后面占原创 2011-08-04 09:31:10 · 1273 阅读 · 0 评论 -
最长回文子串
方法一:枚举字符串的起点和终点,在区间内判断回文,时间复杂度O(n^3)。#include #include #include #define N 5000int main(void){ char s[N], buf[N], p[N]; int i,原创 2011-07-18 15:36:15 · 572 阅读 · 0 评论 -
Marvelous Mazes
简单题目:#include #include int main(void){ int c, i, sum = 0; while ((c = getchar()) != EOF) { if (isdigit(c))原创 2011-08-05 12:21:16 · 788 阅读 · 0 评论 -
Machined Surfaces
很简单的一题,不过需要注意清除输入流中遗留的空格。#include #include int count_spaces(char s[]){ int count = 0; while (*s) if (*s++ == ' ') count++; return原创 2011-08-03 21:08:48 · 631 阅读 · 0 评论 -
Linear Cellular Automata
简单题,既然边界被看做密集度为0的培养皿,那就把问题一般化,把数组的边界空出即可,由于遍历修改原培养皿由于前面的培养皿发生变化会使得后面的计算出错,所以再设置一个辅助数组。注意每个Case的清零操作和最后不要多输出一个空格(这题多输出UvaOJ不判PE判WA)。#includ原创 2011-08-06 21:40:14 · 712 阅读 · 0 评论 -
A + B problem II
高精度加法,还是不难的,不过有人用long long,竟然AC了- -!#include #include #include #define N 3000int main(void){ int n, i, j, k, p, q, a, b, t, up; char s[N]; scanf("%d ", &n); for (i = 0; i < n; i原创 2011-07-16 14:36:55 · 474 阅读 · 0 评论