分析:本题判断一个图是否是有向强连通分量,这里使用tarjan算法求解。
#include
#include
#include
using namespace std;
vector map[10002];
stack tarjan_stack;
int low[10002];
int dfn[10002];
bool vis[10002];
int cnt,pos;
void Init(i...
分类:
编程语言 时间:
2015-04-25 13:46:55
阅读次数:
150
Ignatius and the Princess III
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 14870 Accepted Submission(s): 10469
Problem Description...
分类:
其他好文 时间:
2015-04-25 10:49:26
阅读次数:
164
Holding Bin-Laden Captive!
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 16548 Accepted Submission(s): 7436
Problem Description
We...
分类:
其他好文 时间:
2015-04-25 10:48:06
阅读次数:
218
分析:多重背包问题。这里直接转换为01背包,为使用二进制。
#include
using namespace std;
int price[101];
int weight[101];
int number[101];
int dp[101];
int main()
{
int C,n,m;
int i,j,k;
cin>>C;
while(C--)
{
cin>>n...
分类:
其他好文 时间:
2015-04-24 19:19:37
阅读次数:
132
题意:给你N种不同的设备,每种设备的价值为V,每种设备的数量为M,请尽量把他们分为总价值相近的两堆,为两堆的价值分别是多少,大的在前面输出。
分析:看到网上很多版本,可以用母函数、多重背包解决;在这里用了0-1背包解决。
实现:把总价值的一半看为背包容量,价值看为质量,价值也看为体积;最后可以求出接近总价值一半的价值,另一半就用总价值减去背包得出的一半的价值即可,注意背包求出的总价值的一般可能...
分类:
其他好文 时间:
2015-04-24 19:16:19
阅读次数:
148
分析:最大录取概率=1-最小不录取概率。
0-1背包求出最小不录取概率,然后用1减去即可。
注意dp数组初始化时概率要先设置为1,表示一开始被录取。
#include
using namespace std;
double p[10001],dp[10001];
int v[10001];
int main()
{
int n,m,i,j;
while(cin>>n>>m &&(...
分类:
其他好文 时间:
2015-04-24 19:14:40
阅读次数:
128
分析:可以采用自底向上的方法也可以采用自顶向下的方法,这里采用第二种
#include
using namespace std;
int dp[15][100010];
int main()
{
int i,j,maxt,t,n,x,temp;
while(scanf("%d",&n) && n)
{
maxt=0;
memset(dp,0,sizeof(dp));
fo...
分类:
其他好文 时间:
2015-04-24 19:12:25
阅读次数:
156
题意:预先给你一些单词,然后给你一个字符串,在判断有多少个单词出现在这个字符串中。
分析:使用AC自动机解决。下面是自己写的类模版。可以直接使用。最后记得释放内存。
#include
#include
using namespace std;
#define LETTER_COUNT 26
class AC_Automation
{
private:
struct Node
{
...
分类:
其他好文 时间:
2015-04-24 14:24:29
阅读次数:
127
题意:一个有向无环图上有n个顶点,每一个顶点都可以放一个棋子或不放,有两个人,每次根据这个图只能将任意一颗棋子移动一步,如果到某一步玩家不能移动时,那么这个人就输.
分析:
1、有向无环图的博弈,dfs把所有顶点的SG值都计算出来,然后对每个棋子的SG值进行异或运算,为0就是先手必败,否则就是先手必胜.
2、如果某个人移动后,所有棋子都在出度为0的顶点,那么他必败。
SG函数简介:
...
分类:
其他好文 时间:
2015-04-23 09:42:08
阅读次数:
138
博弈题。
题意:2 人玩游戏,从1 开始,轮流对数进行累乘,直到超过一个指定的值n。
分析:
1、若输入2 ~ 9 ,因为Stan 是先手,所以Stan 必胜
2、若输入10~18 ,因为Ollie 是后手,不管第一次Stan 乘的是什么,Stan肯定在 2 ~ 9 之间,若Stan乘以 2 ,那么Ollie就乘以 9 ,就到18了,若Stan乘以 9 ,那么Ollie乘以大于1的数都都...
分类:
其他好文 时间:
2015-04-22 22:18:43
阅读次数:
120