2013年8月25日

H - A Shooting Game

摘要: 题目:A Shooting Game题目大意:题目好长>_ 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 typedef long long LL; 8 #define FOR(i, s, t) for(int i = s; i EPS) return a[p1][p2][p3][p4][p5][p6];18 if(p1 + p2 + p3 + p4 + p5 + p6 == 0) return 0;19 int v1, v2, v3, v4, v5, v6;20 do... 阅读全文

posted @ 2013-08-25 08:54 SCNUACM 阅读(231) 评论(0) 推荐(0) 编辑

G - Repairing a Road

摘要: 题目:Repairing a Road题目大意:有一个C个点R条无向边(这俩字母好别扭……),每条边有一个花费vi和一个ai(浮点数)。现在我们有一个人,可以花费 t(你爱多大就多大)的时间该修一条道路,什么时候开始修随你,修到什么时候随你,不过修的时候此路不通。如果总共修了t时间,那么这条路的花费就会变成 vi * ai ^ (-t)。我们要从1走到C,求最小花费(花费就是时间)。思路:首先要修路,肯定是从一开始就开始修,因为看出修得越久该路的花费就越少(不要告诉我你看不出那个是单调递减的函数),所以修的 时间越长越好,而且,总不会说,我从这条路走过去了,然后你再开始修,修了一段时间,我再走 阅读全文

posted @ 2013-08-25 08:52 SCNUACM 阅读(412) 评论(0) 推荐(0) 编辑

F - Biggest Number

摘要: 题目:Biggest Number题目大意:有一个R*C的矩阵,矩阵里面有1~9的数字(太好了不用处理前导0),或者是#(代表不能通过),先要从矩阵任意一点出发(之前英语抓鸡看成 了边界,英语差的孩纸伤不起啊>_ 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 typedef long long LL; 8 9 const int MAXN = 33;10 11 struct Node {12 int a[MAXN], len;13 void clear() {14 ... 阅读全文

posted @ 2013-08-25 08:50 SCNUACM 阅读(431) 评论(0) 推荐(0) 编辑

E - Internal Rate of Return

摘要: 题目:here题目大意:给出CF[0]0,i>0,求IRR(IRR>-1)令NPV = 0.思路:设f(IRR) = NPV,这就变成了一个函数,稍微观察一下,可以发现当IRR∈(-1, +∞)的时候是单调递减的(好像是吧做完忘了),这样我们就可以二分答案0点了。当IRR无限接近-1的时候,f(IRR)→+∞(好像是吧),当 IRR→+∞时,f(IRR)→CF[0] 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 const int MAXN = 13; 9 const double EP 阅读全文

posted @ 2013-08-25 08:48 SCNUACM 阅读(206) 评论(0) 推荐(0) 编辑

D - Ball in a Rectangle

摘要: 题目:here题目大意:一个半径为R的圆以一个角度α和恒定速度v在一个L*W的场地中乱撞,撞墙后反射的方向与镜面反射相同。思路:首先,一个圆在[0,L]、[0,W]里乱撞,相当于一个这个圆的圆心在[R, L-R], [R, W-R]里乱撞。答案也是要圆心,那么只考虑圆心即可。之后,速度是恒定的,横向速度和纵向速度也是不变的,假设场地为无限大,那么我们一开始就可以算出 最终坐标(理论上来说极限数据会爆double的精度,但是AC了,我就不管了……要是真WA了我们可以试试long double……)。然后x、y完全可以分开算,他们之间一点影响都木有。于是考虑x,若有一堵墙在L-R处,如果没有墙L我 阅读全文

posted @ 2013-08-25 08:43 SCNUACM 阅读(282) 评论(0) 推荐(0) 编辑

2013年8月19日

D - Farey Sequence

摘要: 题目:D - Farey Sequence题目明说了:a/b with 0 #include #include #include using namespace std;typedef long long LL;const int MAXN = 1000010;LL phi[MAXN];void phi_table(int n) { //for(int i = 2; i <= n; ++i) phi[i] = 0; phi[1] = 1; for(int i = 2; i <= n; ++i) if(!phi[i]) for(int j = i; j <= n;... 阅读全文

posted @ 2013-08-19 14:08 SCNUACM 阅读(187) 评论(0) 推荐(0) 编辑

C - 奇数阶魔方

摘要: 题目:C - 奇数阶魔方找规律题,题目告诉你是右上角,那么先把1写到第一行的中间,然后往右上角移动(出界了就上下左右平移n个单位直到那个位置回到n*n的矩阵中),如果右上角已经有数了,那么就往下移动(出界同上处理)。至于往下移动的时候会不会还有数在那里呢?这个是不会的,我测过19都没事,至于为什么不会我就不清楚了>_ 2 #include 3 #include 4 #include 5 using namespace std; 6 typedef long long LL; 7 8 const int MAXN = 20 * 20; 9 10 int mat[MAXN][MAXN];1. 阅读全文

posted @ 2013-08-19 14:07 SCNUACM 阅读(270) 评论(1) 推荐(0) 编辑

B - Load Balancing

摘要: 原题连接:i am an Acmerspecial judge的题目,在这里介绍一种贪心的做法。先按Ti从大到小排序,然后从大到小循环,每次找最空闲的机器(在这台机器在执行的任务的总时间最小)放进去。这样得到的结果还是比较优的(找反例也不是那么容易的说) 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 const int MAXN = 100010; 8 9 struct Node {10 int t, id;11 bool operator rhs.t;13 }... 阅读全文

posted @ 2013-08-19 14:03 SCNUACM 阅读(197) 评论(0) 推荐(0) 编辑

2013年8月13日

A - Kidnapping

摘要: 题意:n个点,给出这n个点的邻接矩阵,元素大小为对应边的长度,然后给出k个长度,问从结点1开始,依次走完这k个长度后最终到达的结点有哪几个 (2 >看n、k为200,不大,于是直接模拟一次,结果TLE去了。。。接着想到了dp,设d[i]为依次走完前i个长度时能到达的点的集合(用set),则状态转换方程为:d[i].insert(v[e]);(v[e]为d[i-1]中的元素经过第i个长度后能到达的点)。 1 #include 2 #include 3 #include 4 5 using namespace std; 6 7 const int maxn = 200 + 10; 8 i.. 阅读全文

posted @ 2013-08-13 15:26 SCNUACM 阅读(204) 评论(0) 推荐(0) 编辑

2013年8月11日

C - Gao The Sequence

摘要: 原题连接:ACMer什么的最可爱了题意:有两个序列A和B(下标从1开始),问能否经过有限次的下列操作,把A变成B(1 >1、每一次操作,总共减去2个delta,是个偶数,所以最后的增量和一定是偶数。2、如果存在A[i]与B[i]使得2 * (A[i] - B[i]) > sum(sum为总增量),那么要使A[i]变成B[i],总的A就会减去2 *(A[i] - B[i])(一半是A[i]自己的,一半是牵连的),但总增量并没有那么大,这种情况一定不能实现变换。注意:程序中用到了64位整数,在zoj上,若用scanf,用的应是%lld,而不是%I64d。用%I64d会出现随机AC与WA 阅读全文

posted @ 2013-08-11 13:03 SCNUACM 阅读(213) 评论(0) 推荐(0) 编辑

导航