#include
#include
using namespace std;
#define N 1000005
int a[N],dp[N],maxpre[N];
int max(int a,int b)
{
return a>b?a:b;
}
int main()
{
int i,j,n,m,tmp;
while(scanf("%d%d",&m,&n)==2)
{
for(...
分类:
其他好文 时间:
2015-06-06 18:18:43
阅读次数:
330
分析:这里使用树形DP做。
1、最小顶点覆盖做法:最小顶点覆盖 == 最大匹配(双向图)/2。
2、树形DP:
dp[i][0]表示i为根节点,并且该节点不放,所需的最少的点数。
dp[i][1]表示i为根节点,并且该节点放,所需要的最少的点数。
dp[i][0]=sum(dp[son[i][j]][1]) 该点不放,则它的儿子节点必须都放,只有这样之间的边才可以被覆盖。
dp[i...
分类:
其他好文 时间:
2015-06-06 16:42:03
阅读次数:
152
分析:暴搜,复杂度一次最高也才12^5。
#include
#include
using namespace std;
#define N 30
char s[15],ts[10],ans[10];
int tar,index[N];
bool vis[N];
void dfs(int d,int n)
{
int i,tmp;
if(d==5)
{
tmp=index[ts[0...
分类:
其他好文 时间:
2015-06-06 15:01:19
阅读次数:
91
分析:题意是一个生成随机数的函数,Seed[x+1] = ( seed[x] + STEP ) % MOD,seed是生成出来的随机数,seed[0]是哪个数并不重要,后面证明。STEP就是每次往前一个所加的值,再模上MOD得到下一个随机数。
判断这个随机生成函数的好坏的依据是如果能够产生0~MOD-1内的所有数,就是一个好的,否则坏(因此该題也可以用模拟,用HASH表)。
根据同余特性,...
分类:
其他好文 时间:
2015-06-06 14:58:54
阅读次数:
127
#include
using namespace std; //BFS+优先队列(打印路径)
#define N 500005
int c[N];
int dp[N]; //dp[i]保存的是长度为i的最长不降子序列的最小尾元素
int BS(int n,int x) //二分查找下标,当x比所有元素小时下标为1,比所有元素大时下标为n+1.
{
int low,high,mid;
...
分类:
其他好文 时间:
2015-06-06 13:35:52
阅读次数:
150
#include
using namespace std;
struct Node //节点
{
int num[105];
int len; //数的长度
} a[105];
void CalCatalen() //卡特兰数计算
{
int i,j,len,c,t; //len长度,c进位
a[1].num[0]=a[1].len=1;
...
分类:
其他好文 时间:
2015-06-06 13:31:16
阅读次数:
138
Milk
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 15697 Accepted Submission(s): 3947
Problem Description
Ignatius drinks milk eve...
分类:
其他好文 时间:
2015-06-06 12:08:10
阅读次数:
156
分析:给你n个人M件衣服, 选出前K件衣服评价最大值,注意要输出的是编号,编号从大到小。两次排序即可。
#include
#include
using namespace std;
struct node
{
double m;
int id;
};
bool cmp(const node& a,const node& b)
{
if(a.m!=b.m)
return a.m>b....
分类:
其他好文 时间:
2015-06-06 09:16:04
阅读次数:
95
#include
#include
using namespace std;
int main()
{
int m,n,hm,hn,rm,rn,lm,ln,cnt; //h表示水平层,r表示right层,l表示left层
while(scanf("%d%d",&m,&n)==2)
{
hm=(int)ceil(sqrt(m));
hn=(int)ceil(sqrt(n));
...
分类:
其他好文 时间:
2015-06-06 09:15:24
阅读次数:
179
分析:在BFS中使用优先队列即可获取最小值。
#include
#include
using namespace std; //BFS+优先队列(打印路径)
#define N 101
struct Node //节点
{
int x,y,time;
friend bool operator<(const Node& a,const Node& b) //有限队列根据时...
分类:
其他好文 时间:
2015-06-06 09:13:07
阅读次数:
108