随笔分类 -  ACM

摘要:Task比赛当时思路想的差不多,感觉能过的,该处理的也都处理到了,最后还是没过,可能是二分写错了吧-。-大意:给你n个机器,m个要完成的任务,每个机器跟任务都有两个属性,机器是最大工作时间跟等级,任务是需要工作的时间跟等级。完成一个任务可以得到500*(工作时间)+2*(等级)的报酬。完成任务的条件... 阅读全文
posted @ 2014-07-23 21:05 GLSilence 阅读(272) 评论(0) 推荐(0)
摘要:Maximum Sum大意:给你一个n*n的矩阵,求最大的子矩阵的和是多少。思路:最开始我想的是预处理矩阵,遍历子矩阵的端点,发现复杂度是O(n^4),就不知道该怎么办了。问了一下,是压缩矩阵,转换成最大字段和的问题。压缩行或者列都是可以的。 1 int n, m, x, y, T, t; 2 in... 阅读全文
posted @ 2014-07-23 20:53 GLSilence 阅读(172) 评论(0) 推荐(0)
摘要:Scientific Conference之前一直在刷计算几何,邀请赛连计算几何的毛都买见着,暑假这一段时间就做多校,补多校的题目,刷一下一直薄弱的DP。多校如果有计算几何一定要干掉-。-题意:给你N个报告会的开始时间跟结束时间,问你做多可以听几场报告会。要求报告会之间至少间隔为1。思路:其实是个活... 阅读全文
posted @ 2014-07-23 20:26 GLSilence 阅读(655) 评论(0) 推荐(0)
摘要:Space Ant大意:有一只蚂蚁,每次都只向当前方向的左边走,问蚂蚁走遍所有的点的顺序输出。开始的点是纵坐标最小的那个点,开始的方向是开始点的x轴正方向。思路:从开始点开始,每次找剩下的点中与当前方向所形成的夹角最小的点,为下一个要走的点(好像就是犄角排序,我不是很会),夹角就是用点积除以两个向量... 阅读全文
posted @ 2014-06-23 17:16 GLSilence 阅读(298) 评论(0) 推荐(0)
摘要:Intersection大意:给你一条线段,给你一个矩形,问是否相交。 相交:线段完全在矩形内部算相交;线段与矩形任意一条边不规范相交算相交。思路:知道具体的相交规则之后题其实是不难的,但是还有个坑点就是题目里明明说给的是矩形左上角跟右下角的点,但实际上不是,需要重新判断一下...真坑。 1 ... 阅读全文
posted @ 2014-06-23 15:52 GLSilence 阅读(308) 评论(0) 推荐(0)
摘要:Treasure Hunt大意:在一个矩形区域内,有n条线段,线段的端点是在矩形边上的,有一个特殊点,问从这个点到矩形边的最少经过的线段条数最少的书目,穿越只能在中点穿越。思路:需要巧妙的转换一下这个问题,因为从一个点到终点不可能“绕过”围墙,只能穿过去,所以门是否开在中点是无所谓的,只要求四周线段... 阅读全文
posted @ 2014-06-23 14:30 GLSilence 阅读(559) 评论(0) 推荐(1)
摘要:Intersecting Lines大意:给你两条直线的坐标,判断两条直线是否共线、平行、相交,若相交,求出交点。思路:线段相交判断、求交点的水题,没什么好说的。 1 struct Point{ 2 double x, y; 3 } ; 4 struct Line{ 5 Point ... 阅读全文
posted @ 2014-06-22 13:07 GLSilence 阅读(198) 评论(0) 推荐(0)
摘要:POJ 3304 Segments大意:给你一些线段,找出一条直线能够穿过所有的线段,相交包括端点。思路:遍历所有的端点,取两个点形成直线,判断直线是否与所有线段相交,如果存在这样的直线,输出Yes,但是注意去重。 1 struct Point 2 { 3 double x, y; 4 } ... 阅读全文
posted @ 2014-06-21 17:27 GLSilence 阅读(589) 评论(0) 推荐(0)
摘要:其实也谈不上推荐,只是自己做过的题目而已,甚至有的题目尚未AC,让在挣扎中。之所以推荐计算几何题,是因为,本人感觉ACM各种算法中计算几何算是比较实际的算法,在很多领域有着重要的用途计算几何题的特点与做题要领:1.大部分不会很难,少部分题目思路很巧妙2.做计算几何题目,模板很重要,模板必须高度可靠。... 阅读全文
posted @ 2014-06-21 16:15 GLSilence 阅读(199) 评论(0) 推荐(0)
摘要:HDU 1385大意:有N个城市,然后直接给出这些城市之间的邻接矩阵,矩阵中-1代表那两个城市无道路相连,其他值代表路径长度。如果一辆汽车经过某个城市,必须要交一定的钱(可能是过路费)。现在要从a城到b城,花费为路径长度之和,再加上除起点与终点外所有城市的过路费之和。求最小花费,如果有多条路经符合,... 阅读全文
posted @ 2014-05-26 13:33 GLSilence 阅读(814) 评论(0) 推荐(0)
摘要:HDU 3501 Calculation 2大意:求1~n之间与n不互质的数的总和。思路:欧拉函数的应用;先用欧拉函数求出与n互质的总数m,计算m个数的总和,用n的总和减去m的总和就是想要的结果。 1 #include 2 #define LL __int64 3 4 int eular(int... 阅读全文
posted @ 2014-05-04 20:11 GLSilence 阅读(196) 评论(0) 推荐(0)
摘要:HDU 1286 找新朋友题意:中文题。思路:欧拉函数的纯模板题,没什么好说的,主要是理解欧拉函数的意义。在数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为Euler's totient function、φ函数、欧拉商数等。 例如φ(8)=4... 阅读全文
posted @ 2014-05-04 20:04 GLSilence 阅读(653) 评论(0) 推荐(0)
摘要:HDU 1115大意:给你个n,有n个点,然后给你n个点的坐标,求这n个点形成的多边形的重心的坐标。 1 struct point 2 { 3 double x, y; 4 } P[1000010]; 5 6 struct line 7 { 8 point a, b; 9 } ;1... 阅读全文
posted @ 2014-04-22 12:51 GLSilence 阅读(522) 评论(0) 推荐(0)
摘要:HDU 1411大意:人一个你一个六面体的六条边,求六面体的体积。思路:没有什么思路,就是用欧拉四面体公式直接代入。欧拉四面体公式:具体的推导网上有很多。eg. http://blog.csdn.net/archibaldyangfan/article/details/80353321 void S... 阅读全文
posted @ 2014-04-21 15:33 GLSilence 阅读(249) 评论(0) 推荐(0)
摘要:HDU 1140大意:地球球心是(0,0,0),给你k个卫星以及k个卫星的三维坐标(以球心为基准),m个地球上的点以及m个点的三维坐标(以球心为基准),问有多少个点是能被卫星覆盖到的,输出数量。思路:求出卫星与地球切线的长度,在地球上,与卫星连线的长度小于切线长度的肯定都能看到。 1 #define... 阅读全文
posted @ 2014-04-16 09:40 GLSilence 阅读(145) 评论(0) 推荐(0)
摘要:HDU 1174大意:中文题,很好理解,搞清楚各种变量就行。思路:我知道的好像有两种解法,一种是求土匪的头心与子弹射出的直线求点到直线距离,在判断一下方向对不对;另一种是求出子弹射出点与土匪头心连线,求出子弹的射出的直线,求两直线的夹角,求出子弹射出点与土匪头心连线,求出求出子弹射出点与土匪头的切线... 阅读全文
posted @ 2014-04-16 09:25 GLSilence 阅读(305) 评论(2) 推荐(0)
摘要:POJ 2653题意:题意很简单,就是在地上按顺序撒一对木棒,看最后有多少是被压住的,输出没有被压住的木棒的序号。有点坑的就是没说清楚木棒怎么算压住,也不知道是不是规范相交。。。我就判断了一下包括端点重合跟部分相交的。思路:一开始我想的是从后往前遍历,找到每一条边,看他是不是压到之前的边了,如果压到了,就把之前的变标记一下,最后统计没被标记过的,但是TLE了。。。就只能从前面开始找,遍历每一条边是否被后面的压过了,压过了就直接break,如果都没压到,存这条边,最后输出。 1 int n; 2 3 struct point 4 { 5 double x, y; 6 } ; 7 8 ... 阅读全文
posted @ 2014-04-10 11:18 GLSilence 阅读(248) 评论(0) 推荐(0)
摘要:POJ 3792大意:按顺序给你一堆正方体,如果当前输入的正方体上下左右前后都没有跟之前的正方体有连接,就输出NO,并输出当前是第几个。如多每次输入的正方体跟之前的都有连接,那么最后输出组成的几何体的表面积。思路:一步一步模拟就行。注意:1.要判一下有重复的输入,如果有重复的输入,要输出NO,并输出第几。。2.注意下标不要向下溢出。 1 #include 2 #include 3 #include 4 #include 5 #define max(a, b) ((a)>(b)?(a):(b)) 6 using namespace std; 7 8 int T; 9 int n;10 .. 阅读全文
posted @ 2014-04-03 21:03 GLSilence 阅读(178) 评论(0) 推荐(0)
摘要:HDU 2372大意:给你一个长度为n的数列,求极差小于k的最长的上升数列的长度。思路:DP,循环k,每次求一个最长上升子序列。 1 #include 2 #include 3 #define LL __int64 4 5 int n, m; 6 int a[110]; 7 LL dp[110][110]; 8 9 void Solve()10 {11 while(~scanf("%d%d", &n, &m))12 {13 memset(dp, 0, sizeof(dp));14 if(!n && !m)15 {16 ... 阅读全文
posted @ 2014-04-02 22:04 GLSilence 阅读(220) 评论(0) 推荐(0)
摘要:HDU 2985大意:给你n个人,每个人买m次彩票,第i次的奖金是2的i次方,求每个人赢的比其他人都多的可能性是多少。思路:就是只看最后一次就行,2的i次方,对于每个人来说,最后一次的奖要比前面的大很多,所以直接只看最后一次,算出概率gcd一下就行了。 1 #include 2 #include 3 4 int a[10010]; 5 6 int gcd(int a, int b) 7 { 8 return b > 0 ? gcd(b, a%b) : a; 9 }10 11 int n, m;12 13 void Solve()14 {15 while(~scanf("... 阅读全文
posted @ 2014-04-02 21:57 GLSilence 阅读(427) 评论(0) 推荐(0)