摘要: 题意:给出T个山洞,对于每个山洞,如果任意选择两点s,e,都满足s可以到达e或者e可以到达s,则输出Yes,否则输出No。思路:如果两点不可达那么在拓扑排序时,该两点谁也不是谁的前驱和后继,那么在拓扑排序时定会出现至少两个度为0的点,这两个点分别是它们本身或它们的拓扑序列的前驱。如果在拓扑排序时发现有多于1个度为0的点,那么这些点必然不可达。由此推出该题为No的充分必要条件:缩点拓扑排序过程中出现至少两个度为0的点。思路摘自:http://happylch21.blog.163.com/blog/static/1656397592011711261518/(我还是刚知道弱连通这个东西。。)Vi 阅读全文
posted @ 2012-10-02 22:27 proverbs 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一个序列,求其中长度为5的递增序列的个数(N<=50000)这题的dp的方法挺经典的,方程大家应该都会写(那个N^2的),我就不再赘述,这里巧妙地运用了树状数组求和c[i][j]表示当前状态时,以j(j是数字,不是下标)为结尾的长度为i的序列个数剩下的就是考验高精度了~1100+msView Code 1 #include <cstdio> 2 #include <cstring> 3 #include <cstdlib> 4 #include <iostream> 5 #include <algorithm> 6 7 阅读全文
posted @ 2012-10-02 21:07 proverbs 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 题意:题意:FJ有n头牛,排列成一条直线(不会在同一个点),给出每头牛在直线上的坐标x。另外,每头牛还有一个自己的声调v,如果两头牛(i和j)之间想要沟通的话,它们必须用同个音调max(v[i],v[j]),沟通起来消耗的能量为:max(v[i],v[j])* 它们之间的距离。问要使所有的牛之间都能沟通(两两之间),总共需要消耗多少能量。这个题看着数据量挺吓人的,但是只要肯动笔,这题其实很水的。思路:这个题目n^2的肯定能做,TLE呗,所以我们思考如何降低复杂度。开始动笔:设消耗的总能量为ans,则ans=sigma(max(v[i],v[j])*abs(x[j]-x[i])) 1<=i 阅读全文
posted @ 2012-10-02 19:17 proverbs 阅读(238) 评论(0) 推荐(0) 编辑