ACM解题报告
文章平均质量分 81
LanceLeng
这个作者很懒,什么都没留下…
展开
-
USTCOJ 1359 查找中位数 不用排序
USTC在线评测1359题 http://acm.ustc.edu.cn/ustcoj/problem.php?id=1359该题要求读入n个整数,然后输出该n个整数的中位数。同时输入的数的个数是奇数的时候,中位数是唯一的;当输入的数是个数是是偶数的时候,求两个中位数的平均值,然后下取整输出。一般来说,我们可以将这些数存在数组当中,然后对数组进行排序,最后利用数组下标查找即可。但也可以不排原创 2013-03-22 16:34:02 · 3272 阅读 · 0 评论 -
USTCOJ1381 老式计算器 uva11549 (Set判重、Floyd判圈)
题目链接:http://acm.ustc.edu.cn/ustcoj/problem.php?id=1381题目来源:uva11549题目:对于给定的n和k,求k平方,取其高n位数赋值给k,如是不断平方,给出这一运算过程中k可能取到的最大值。题目分析:显然,对于一个n位整数而言,其可能的取值是有限的,因此上述过程必然出现循环。我们只要在平方过程中得到此前出现过的k值,就表示已经遍历了所原创 2013-06-21 15:36:01 · 1571 阅读 · 1 评论 -
USTCOJ1373 母牛出生问题
题目:一头母牛从出生后,每两年可以生下一头母牛,即在第二年和第四年分别可产下一头母牛,出生后第五年将会死去。假设现在有一头牛,N年后总共有多少头牛?链接:http://acm.ustc.edu.cn/ustcoj/problem.php?id=1373本题有两种解法。解法一分析如下(原文在此):用一个大小为5的整形数组x[5]来保存牛的个数,x[i]表示当前有x[i]头年龄为i的牛原创 2013-06-11 17:55:32 · 1391 阅读 · 0 评论 -
poj2764 树根
题目见此:http://poj.grids.cn/practice/2764描述数根可以通过把一个数的各个位上的数字加起来得到。如果得到的数是一位数,那么这个数就是数根。如果结果是两位数或者包括更多位的数字,那么再把这些数字加起来。如此进行下去,直到得到是一位数为止。比如,对于24来说,把2和4相加得到6,由于6是一位数,因此6是24的数根。再比如39,把3和9加起来得到12,由于12原创 2013-06-17 12:22:34 · 2028 阅读 · 2 评论 -
计算24点
题目参考链接:杭电1427 http://acm.hdu.edu.cn/showproblem.php?pid=1427在自行编写的暴力枚举代码TLE之后,在网上搜索了一下,得到如下简化后的暴力求解思路。先将给你的4个数进行全排列,在这过程中,对每一个全排列去进行判断,看这种排列是否能用四则运算算出24点。若算出24点,便输出“Yes”。对于其中某一种排列a,b,c,d,设#为任意一种原创 2013-06-18 10:11:13 · 2071 阅读 · 0 评论 -
USTCOJ 1378/POJ 1664 放苹果 解法
百炼1664,放苹果:http://poj.grids.cn/practice/1664分枚举和计数两类解法。计数更为快捷。解法一和解法二分别是两类不同的计数方法。解法三是枚举法。解法一:设f(m,n) 为m个苹果,n个盘子的放法数目则有:①当n>m:必定有n-m个盘子永远空着,去掉它们对摆放苹果方法数目不产生影响。即if(n>m) f(m,n) = f(m,m)。②当原创 2013-05-15 16:52:19 · 1302 阅读 · 0 评论 -
USTCOJ 1240 黑屋 非位运算版
USTCOJ 1240,黑屋:http://acm.ustc.edu.cn/ustcoj/problem.php?id=1240该题采用暴力枚举的方式求出关灯所需的最少步数。其中press数组标记了了在每一次尝试关闭所有灯时需要按下的按钮。程序将原有的2^(m*n)中可能的按按钮操作缩减为了2^m次方种按按钮操作。大大缩减了搜索空间。对于每一种按按钮操作,均调用turnOffLight原创 2013-05-04 20:15:55 · 1463 阅读 · 0 评论 -
USTCOJ1240 黑屋 位运算
USTCOJ 1240,黑屋:http://acm.ustc.edu.cn/ustcoj/problem.php?id=1240该题采用暴力枚举的方式,通过位运算加速开关灯操作。若理解有困难,可移步“USTCOJ 1240 黑屋 非位运算版”http://blog.csdn.net/l03071344/article/details/8884790了解该解法基本思想。百练相关题原创 2013-04-17 22:33:25 · 1226 阅读 · 0 评论 -
USTCOJ 1324 Zipper 判断连续出现字符
以下两份代码采用了hzq(这里)的解题思路。即在输入的a、b、c三个串中,如果c串有连续出现的字符,那么这些字符必定也在a或/和b中连续存在。基于这一思路,能够快速的处理tttttt tttttt tttttttttttt这样的输入。代码一:递归+连续字符判断。其中45~55的代码写得很漂亮。/** 作者:hzq* 修改前代码id:73251* 修改者:lance*/#inc原创 2013-05-02 11:18:25 · 983 阅读 · 0 评论 -
fgets、gets、scanf函数读入字符串比较
首先,说说这个函数的使用方法。代码如下:char str[10];fgets(str, 10, stdin);//stdin表示从输入流中读入,也可以是其他文件指针。gets(str);scanf("%s", str);其中fgets函数是安全的,gets和scanf函数都是不安全的。当输入的字符大于等于10时,会数组越界。编译不会保存,甚至运行时也不会保存。但极可能因为对str数组原创 2013-03-28 11:25:57 · 10075 阅读 · 4 评论 -
USTCOJ 1371 island计数
这其实是一道遍历题http://acm.ustc.edu.cn/ustcoj/problem.php?id=1371。深度优先搜索或者广度优先搜索都行。下面的代码是深度优先搜索的代码。其中用到了一个小技巧,即将存储地图的数组开大一些,人为的设置一个值为0的边界,省去数组边界的检查。代码如下:#include #include #define N 55int a[N][N];原创 2013-04-28 12:55:28 · 1121 阅读 · 1 评论 -
POJ 3719 qsort学生信息排序
学生信息排序,题目在此:http://poj.grids.cn/practice/3719/相对容易的一道题。但搞了很久都没做出来。对其中“按名字排序后输出”不甚了了。在网上搜索了一下测试数据。发现是自己开始的理解没有错,但对qsort的cmp函数的返回值的理解有错。特记录于此:int cmp(a, b){ if (a > b) return 1;原创 2013-04-19 10:28:37 · 1992 阅读 · 0 评论 -
USTCOJ 1271 方程X+2Y+5Z=N非负整数解计数
方程非负整数解计数:http://acm.ustc.edu.cn/ustcoj/problem.php?id=1271&contest=35题目的大致意思,是读入一个非负整数N,然后求出X、Y、Z非负整数解。解这道题的朴素方法,自然是设置一个计数变量counter,然后利用一个三重循环(或者两重),依次对X、Y、Z赋值,当X、Y、Z的组合满足方程时,counter变量自增,最后输出counte原创 2013-04-15 11:26:27 · 3100 阅读 · 0 评论 -
USTCOJ 1361开灯问题、1362 单词求值、1363 幸福配对
USTCOJ 1361-1363题目比较简单,就不多说了。其中值得留意的是gets函数会读入'\r'(如果有的话),处理方法详见1362。1361开灯问题:http://acm.ustc.edu.cn/ustcoj/problem.php?id=1361#include #include void reverseFlag( char* flag ) { *fla原创 2013-03-27 22:24:19 · 1235 阅读 · 0 评论 -
USTCOJ 1365 字符串计数
原题在这里。是在[01]+串中找出所有(01)+的数目。以下是常规版本,来自zeng24。该版本类似计数。#include #define N 120main(){ int n; scanf("%d", &n); while(n--) { int count = 0; char str[N];原创 2013-03-26 09:55:14 · 939 阅读 · 0 评论 -
百练1019 Number Sequence
百练1019 Number Sequence题目出处:http://poj.grids.cn/practice/1019题目描述:A single positive integer i is given. Write a program to find the digit located in the position i in the sequence of number group原创 2013-03-27 22:14:38 · 1180 阅读 · 0 评论 -
USTCOJ 1366 市长选举(约瑟夫环变种)
USTCOJ 1366,题见此处:http://acm.ustc.edu.cn/ustcoj/problem.php?id=1366题目翻译自soj.me,链接地址:http://soj.me/7675#include int increment(int num, int mod){ num = (num + 1) % mod; return num;}//每人原创 2013-03-27 22:03:45 · 1120 阅读 · 0 评论 -
USTCOJ 1324 Zipper 存储计算结果
在USTCOJ的1324这道题中,当遇到tttttt tttttt tttttttttttt这样的输入实例时,如下伪代码片段效率非常低。因为有很多的重复计算在里面。可通过存储match函数调用结果减少重复计算。int match(char *a, char *b, char *c){ if *c = 0 return 1 if *a = *b = *c return原创 2013-04-23 21:43:26 · 996 阅读 · 0 评论