![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM之路
SparkRat
成长路上!
展开
-
POJ1006
坑爹的数学题! 大体的意思就是:已知三个周期tq=23、te=28,ti=33!然后,一个case给你四个数,前三个q、e、i,对应已知的三个周期,是周期开始的时间,然后每个时间你需要输出从第四个数所代表的时间到三个时间经过若干个周期后相等的时间。(每个时间的周期数不要求相等,例如q经过了k1个周期,e经过了k2个周期,i经过了k3个周期使得q+k1*tq==e+k2*te==i+k3*ti)原创 2015-04-22 17:27:42 · 459 阅读 · 0 评论 -
poj1013
题目描述:12个金币中有一个是假币,假币的大小颜色都和真的一样,只有重量不一样,但是有可能比真的轻,也有可能重,现在要通过称重找出那个假的。 输入格式:第一行一个整数n,表示有n组数据,每组数组有3行输入,每行由被2个空格隔开的三个字符串组成,表示一次称重的结果,前字符串由A-L的大写英文字母组成,分别表示天平左边和右边分别放的金币编号。第三个字符串有三种情况”even”,”up”,”down原创 2015-05-05 22:17:24 · 1639 阅读 · 0 评论 -
poj1020
题目描述:有一个边长为size的正方形蛋糕,现在问这块蛋糕是否恰好能被分成n块特定边长的正方形小蛋糕。 输入格式:第一行一个整数s,表示有s组数据,每组数据一行,每行开头一个整数s,表示大蛋糕的边长,然后是一个整数n,表示小蛋糕的数量,接下来n个整数,代表这个n块小蛋糕的边长。 输出格式:每组数据输出一行,”KHOOOOB!”或者”HUTUTU!”,分别代表恰好可以分和不能分。 数据约定:1<原创 2015-05-15 11:41:35 · 721 阅读 · 0 评论 -
poj1019
题目描述:有一个数列S1S2·····Sk,Sk是由从1到k的数字组成的数列,例如这个数列的前80个数字是: 11212312341234512345612345671234567812345678912345678910123456789101112345678910 现在给定一个数字i,要求给出该数列的第i个位置上的数字!! 输入格式:第一行一个整数t,表示有t组数据,接下来是t行,每行一原创 2015-05-14 23:00:20 · 405 阅读 · 0 评论 -
poj1021
题目描述:判断两个图是否等价。 对等价的定义是:两个图有相同个数的连通块,第一个图里面的每个连通块总能在第二个图里面找到一个连通块(未与别的块匹配)与之匹配。 对连通块匹配的定义是:两个连通块如果能经过若干次平移、对称、旋转等操作之后重合,则说它们是匹配的。 现在要求设计程序,输入两个图,输出它们是否等价。 输入格式:第一行一个整数t,表示有t组数据,接下来t组数据,每组数据由3行构成,第一原创 2015-05-16 21:25:22 · 1185 阅读 · 0 评论 -
poj1023
题目描述:给一个长度为k的二进制符号序列,每一位都有两种状态,正的(用p表示)和负的(用n表示),给一个n,现在要求有没有满足条件的二进制数在按照给定的序列转化成10进制后等于n的。 example:例如给定序列长度为4,二进制符号序列是ppnn,给定n为10,则二进制数为1110,因为1*2^3+1*2^2-1*2^1-0*2^0==10。 输入格式:第一行一个整数t,表示有t组数据,每组数据原创 2015-05-20 20:30:58 · 608 阅读 · 0 评论 -
poj1018
题目描述:有一批订单(order),需要n种设备组成一个交流系统。每种设备有m个设备制造商,每个设备制造商的设备都有不同的带宽(bandwidth)和价格(price)。 定义系统的带宽(B)为这个n个设备里面的最小带宽 定义系统的价格(P)为n个设备的总价格 现在要求你设计程序计算从设备制造商提供的所有设备中选出n个(每种一个)使得系统的B/P最大 输入格式:第一行一个整数t,表示总共有t原创 2015-05-14 20:44:29 · 460 阅读 · 0 评论 -
POJ1068
题目描述:一个括号序列S可以用两种方式编码:P序列和W序列。 两种编码方式得到的序列定义如下: P=P1P2······Pn, Pi表示从左至右每一个右括号左边有多少个左括号。 W=W1W2······Wn,Wi表示从左至右每一个右括号匹配的左括号是从它 开始往左数的第几个左括号。 例如: S= (((()()()))) P= 4 5 6 6 6 6 W= 1 1 1原创 2015-05-26 12:14:55 · 546 阅读 · 0 评论 -
poj1024
题目描述:给定走出一个迷宫的最短路径,再给出一个由这个最短路径算出来的解(一个墙的结合),现在要有设计程序判断该解是否正确。 正确的标准:最短路径为给出的最短路径且唯一,如果给出的解(墙的集合)组成的迷宫的最短路径比给定的最短路径长或短都不行,一定要一样长且只有给定的那一条路是最短路。 输入格式:多组数据,第一行为一个整数t,表示数据的组数 每组数据包括一个原始问题输入和一个原始问题输出。原创 2015-05-21 22:36:24 · 1440 阅读 · 0 评论 -
poj1022
题目描述:有一个由n个四维的小立方体(四维的还能叫立方体?* v *)组成的产品(名字叫做EE3),小立方体之间互相用胶水粘在一起,现在需要一个程序判断EE3是否合格,如果合格计算EE3的体积(四维情况下还能叫体积么?@_@!!)。 EE3合格的条件:所有的小立方体都连通,并且任意两个相邻的小立方体只公用一个维度,且在该维度上互相在对方的相反方向上。 提醒:每一个小立方体都有8个面(因为四根坐标原创 2015-05-19 19:02:33 · 922 阅读 · 0 评论 -
青岛市赛总结——远征石油大学
今天去石油大学参加青岛市ACM市赛,我大学的第一次比赛(T_T),与林敏轩和学长的合作真的很愉快。介绍一下题目吧。第一题,是一道求期望的题目,很难。学长搞了很久没搞出来,好吧,这道题目的确很难,全场只有那么两个友情队搞出来了。。似乎冠军都没搞出来。。好吧,我也忘记了。。第二题,是一道很奇葩的题目,至今不知道算法。。不考虑了第三题,我想出来的,贪心,但是一开始搞错策略了,WA了一次之后发现从小到大的枚原创 2015-06-11 22:33:00 · 1624 阅读 · 0 评论 -
博弈论初探——取石子游戏
问题源自于 POJ1067关于取石子游戏 取石子是一种很有意思的游戏,两个人根据指定规则轮流从石子堆中取若干石子,规定最后取光石子玩家获胜,假定双方玩家都采取最优策略,问先手(A)是否有什么必胜策略。 这是一种博弈游戏,由此延伸出来了博弈论。科学严谨的定义详见维基百科博弈论条目。本文仅仅讨论最简单的三种博弈游戏。首先我们定义奇异局势为: 选手面对奇异局势时必输。所以,对于博弈游戏的分析转化为寻找原创 2015-06-11 22:34:37 · 660 阅读 · 0 评论 -
树状数组
树状数组是什么东西?先戳维基百科树状数组条目简单来说,树状数组就是一种可以大大降低维护一个数字序列的时间复杂度的数据结构。树状数组的定义树状数组的具体做法是这样的: 假设原始的数字序列为\(A_ {i}\),树状数组的序列为\(C_ {i}\)。 则有: \(C_{1} = A_{1}\) \(C_{2} = A_{1}+A_ {2}\) \(C_{3} = A_{3}\) \(C_{4} =原创 2015-06-11 22:37:34 · 529 阅读 · 0 评论 -
poj1012
题目描述: 经典的约瑟夫环问题。有n个人围成一个环,给定一个m,从0开始报数,报到第m个数的人出局,然后从此人后一个人继续从0开始报数,直到全部人都出局。现在问:对于给定的k,表示有2k个人,然后要求输出一个m使得第一次有前k个人里的人出局时,后k个人已经全部出局。 输入格式:若干行,每行表示一个输入——k,以0结束 输出格式:每个k输出一行,表示满足条件的m 数据保证:0< k <14原创 2015-05-05 17:10:53 · 532 阅读 · 0 评论 -
poj1017
题目描述:有六种size(1*1,2*2,3*3,4*4,5*5,6*6,)的物品,只有一种size(6*6)的箱子。现给出每种物品的数量,求最少要用多少个箱子才能装下所有的物品。 输入格式:有多组数据,每组数据一行,每行六个整数,分别表示从1*1到6*6size的物品的数量。输入以6个零结束。 输出格式:每组数据输出一行,每行一个整数,表示最少的箱子数量。最后六个零不输出。 解题思路:特么的原创 2015-05-12 16:53:29 · 646 阅读 · 0 评论 -
poj1005
突然发现1005竟然忘记写题解了。。补上 这道题当时有点没看懂,后来看了discuss才明白意思的, 大体意思是这样的:有一个半圆从原点每年以一定的速度扩张,然后给你一些点,要求你输出半圆扩张到这些点的时间(多少年)。。 然后用数学公式就过了。。#include <cstdio> #define pi 3.14159265357int main(int argc, char const *ar原创 2015-04-24 16:06:17 · 639 阅读 · 0 评论 -
poj1007
炒鸡大水题 直接用三重循环(不会超时)实现读取加处理,然后选择排序,然后输出就过了。 贴代码!#include <cstdio> #include <cstring> #define MAX_LEN 5555 #define STR_LEN 55int num[MAX_LEN], f[MAX_LEN]; char s[MAX_LEN][STR_LEN], t[STR_LEN]; void swa原创 2015-04-24 15:59:23 · 320 阅读 · 0 评论 -
poj1008
炒鸡大水题,一次性AC不解释!!!题目还有中文翻译有木有。。#include <cstdio> #include <cstring>char monf[20][10] = {"pop", "no", "zip", "zotz", "tzec", "xul", "yoxkin", "mol", "chen", "yax", "zac", "ceh", "mac"原创 2015-04-26 16:14:14 · 521 阅读 · 0 评论 -
poj1003&&poj1004
POJ1003这是一道水题,我一开始还想复杂了。。擦之 之后我发现了它的水题本质。不过我还是WA了无数次。。 不说了,说多了都是泪。。。直接上代码#include <cstdio> #define MAX_LEN 333 int main(int argc, char const *argv[]) { for(double que; scanf("%lf", &que) && que !原创 2015-04-21 22:15:08 · 453 阅读 · 0 评论 -
poj1010
坑爹的搜索题。。搜索什么的最讨厌了。还有英语真的很伤!! 题目大意就不说了。。由于搜索方面的薄弱,so借鉴了这个博客的思考。 我采用的是dfs的搜索方法。从上面那个博客里学到的优化。还有使用std函数sort排序。哈哈哈好方便的说。 不知道为什么,我总是想不到搜索的剪枝,例如这道题里面的对邮票的面值进行排序。。超过5张面值一样的邮票,直接算5张,我觉得我真的很难想的到。。我直接看别人的剪枝方法原创 2015-04-29 20:05:39 · 625 阅读 · 0 评论 -
poj1014
题目描述:有一堆石头,每块石头都有一个value,value只有六个数字0-6,现给出每个value的石头的个数,问,这堆是有能否分成value和相等的里两堆。 输入格式:每行一组数据,每行六个整数n1,···,n6,分别表示value为i(i=1···6)的石头的个数。以0 0 0 0 0 0结束输入(该组数据不输出结果) 输出格式:每组数据都要输出一行”Collection #k:”,k是数原创 2015-05-08 15:34:55 · 501 阅读 · 0 评论 -
POJ1002 题解
看了很多人的解题报告。。发现很多写法 快排 堆排 hash 优先队列 但是。。就是没有字典树的。。然后我就写个字典树把。。因为我看到这道题的第一想法是字典树。。然后我WA了5次。。然后。发现是个低级错误导致了我的WA、天坑! 写插入函数的时候。。一开始是写成了这样的。。for(; *pst++; ) { int ch = *pst - '0'; if( ptr->c原创 2015-04-20 20:54:53 · 643 阅读 · 0 评论 -
poj1015
题目描述:有n个人,需要从中选出m个人,每个人都有一个d和一个p值,要求选出来的m个人满足:在所有的方案中,所有人的p值之和减去所有人的d值之和的绝对值最小,如果最小的绝对值相等,则取p值之和加上d值之和最大的方案。 输入格式:有多组数据,每组数据n+1行,第一行两个整数n和m,接下来n行每行两个整数,表示每个人的d值和p值,以0 0结束输入。 输出格式:每组数据输出三行,第一行表示当前数据组数原创 2015-05-09 19:45:25 · 597 阅读 · 0 评论 -
poj1011
题意不说了,有中文。 搜索。高难度剪枝。 其实这道题在POJ上的数据太渣。水水的剪枝就可以过。但是UVA的那道一样的题目不行。。推荐一个好的题解。 这道题目一开始我只想到3个剪枝方法。然后百度到了另外3个。 首先确定答案的范围,答案必然满足maxlen<=answer<=totlen/2 或者 answer==totlen 然后answer一定是totlen的约数即必须有 totlen%ans原创 2015-04-30 14:26:41 · 874 阅读 · 0 评论 -
poj1016
题目描述: 定义一个整数的inventory为:从0到9排列的(数字的个数+数字)。 例如”5553141”里面有2个1、1个3、1个4、3个5。所以”21131435”是”5553141”的inventory。 定义一个整数的第n(n>1)个inventory为:它的第n-1个inventory的inventory。 定义一个整数进入一个长度为n的inventory循环为:它的第n个inve原创 2015-05-10 14:18:45 · 664 阅读 · 0 评论 -
5.1比赛总结加解题报告
比赛成绩很差很差。。8道题竟然只水出来三道,还有好几道题目也是水题,但是由于英语的原因。没看懂题目意思,然后坑了。英语是硬伤啊,要抓紧时间提升英语水平啊,以后的题目都是全英文的,无奈之。 这次比赛用的题目是codeforces上的第245号比赛题,不过题目的顺序给挪动了。写写解题报告把。。我还是按照codeforces上的顺序来把。 A.System Administrator 题原创 2015-05-03 12:22:45 · 481 阅读 · 0 评论 -
poj1009
这是一道有挺难的题目。英语硬伤。好吧,我承认我在百度上找了翻译。 题目大体意思我就不说了,百度有翻译。。 这道题目一开始我是没有任何头绪的,因为,直接对像素点暴力的话肯定TLE。。开二维数组然后MLE的弱智想法我肯定不会去想。。所以,主要是对时间复杂度的优化。 感谢 这个博客的代码给了我很大的启发。 解题思路如下: 根据题目给出的条件——pair最多只有1000对,然后仔细思考会发现,如果原创 2015-04-28 23:10:46 · 848 阅读 · 0 评论 -
POJ刷题
这篇文章会持续更新, 记录我所有AC的POJ题目。 PS:我所有的POJ代码都存在我的github上。1000 A+B Problem水题不说了。1001 Exponentiation求一个数的n次方,用高精度,注意细节。1002 487-3279题目描述:设计程序,按照功能机上的9键键位把字母电话号码转化成数字电话号码,并将电话号码格式化(原本的电话号码格式里可能出现无数个短横线-(=_=#))原创 2015-06-11 22:39:20 · 935 阅读 · 0 评论