showproblem专题

http://acm.hdu.edu.cn/showproblem.php?pid=3336

题目大意: 所有前缀在母串中出现的次数之和。 #include<stdio.h>#define N 200009int next[N];int get_next(int len ,char *p){int i=0,j=-1,sum=0;next[i]=j;while(i<len){if(j==-1||p[i]==p[j]){i++;j++;next[i]=j;}else{j=nex

http://acm.hdu.edu.cn/webcontest/contest_showproblem.php?cid=963pid=1019ojid=1

这一题是dijstra的变种,,,用的是dijstra的思想和方法,让求的是从一点到另一点的最大的最小值,,,,一开始木有认真读题,,,贡献了5次wa,,, #include <iostream>#include <cmath>#include<cstdio>using namespace std;#define MAX 201#define INF 10000.0ffloat ma

http://acm.hdu.edu.cn/showproblem.php?pid=3371

这是今天xd弄的一个专题,,,,很是坑爹,,,c++过了,但是g++就是过不了,,,让我纠结了半个多小时,,,悲催,,, prim算法: #include<iostream>#include<string.h>#define N 505#define M 99999999#define FOR(i,s,t) for(int i=(s);i<=(t);++i)using na

http://acm.hdu.edu.cn/showproblem.php?pid=1272

题目大意:小希要做一个迷宫,迷宫中任意两个房间有且仅有一条路径可以相通(除非走了回头路)。 这样,就需要用到并查集了(赤裸裸的),对于输入的两个顶点,判断是否在同一个集合内,是的话,就是存在多条通路了,而对于一个迷宫,所有的点最后必须在同一个集合,处理好这两个问题,就可以了 有一个比较特殊的情况,就是输入的那一组数据只有两个0,必须输出 Yes 网上有很多人写了这个题目的解题报告,但

http://acm.hdu.edu.cn/showproblem.php?pid=2842

找到递推公式f(n)=2*f(n-2)+f(n-1)+1; 要想卸下前n个环,要卸先下前n-2个,然后卸下第n个环,然后按上n-2个环,在卸下n-1环。。。。 AC代码: #include<iostream>#include<cstdio>#include<string.h>#include<algorithm>#define M 200907using namespace s

http://acm.hdu.edu.cn/showproblem.php?pid=2492求长度为3的顺序序列有多少个

经过几天的奋战,终于把自己找的树状数组题刷完了,小happy一下。。 题意找出乒乓球裁判,要求比参赛的两个人中一个排名高,一个排名低,问一共可以找到多少个。。如果找到一个就可以举办这样一场比赛,问一共可以举行多少场比赛。。 AC代码: #include<iostream>#include<cstdio>#include<string.h>#include<algorithm>#d

http://acm.hdu.edu.cn/showproblem.php?pid=1394

树状数组求逆序数的应用。。这一题设计的非常巧妙。。。下面说一下题意。。给定一组数,然后依次的挪动该组数的元素共得到n种序列。求这n中序列中逆序数最少的个数。。。杯具的是我竟然把树状数组和一般的数组弄混淆了。。这里要特别注意。。。不过值得一提的是竟然rank1,(*^__^*) 嘻嘻…… AC代码: #include<iostream>#include<cstdio>#include<s

http://acm.hdu.edu.cn/showproblem.php?pid=2838逆序数的应用

这算是一道比较综合的树状数组题。。 题意:一个农场主养了很多奶牛,每天晚上该农场主都要为奶牛,但是每个奶牛都有一个脾气,这可能会导致奶牛损坏农场主喂牛的工具。。每个奶牛的脾气不等,这样农场主可以调换的某两个牛的位置,以求奶牛破坏最少的工具。已知挪动两个奶牛花费的时间为两个奶牛脾气的和。。让你求出最少的时间在破坏最少工具的前提下。。 思路:树状数组中有两个元素一个是记录比当前a小的个数,一个是记

The 36th ACM/ICPC Asia Regional Beijing Sitehttp://acm.hdu.edu.cn/showproblem.php?pid=4046

比较难的线段树题,,, #include<iostream>#include<cstdio>#include<string.h>#define N 50005using namespace std;typedef struct NODE{int l;int r;int key;}Node;Node node[N<<2];char str[N];void build(int

http://acm.hdu.edu.cn/showproblem.php?pid=2795线段树之求最小区间端点值

刚看到这一题还以为用的是二维线段树,,于是一个劲的想模型,想了一个上午还是没有理清头绪来,,,最后看看了hh神牛的博客,,才明白是怎么回事,以行数对应线段树的端点建树,以该行没有被覆盖列数为该区间的最大值。从而转化为求区间最大值大于给定数的最小端点值问题,,,但要注意的是更新子节点对父节点的影响 #include<iostream>#include<cstdio>#include<alg

http://acm.hdu.edu.cn/showproblem.php?pid=4337dfs

一道深搜题,给你一些朋友的关系,让你找到这样的一个排列,相邻的人是朋友,, AC代码: #include<cstdio>#include<string.h>#include<string>#define N 180using namespace std;bool map[N][N],vis[N];int path[N];bool flag;int n,m,res;void

Air Portshttp://www.lightoj.com/volume_showproblem.php?problem=1059

最小生成树变形,这一题,真他妈的恶心,由于没看清最后一句话,导致一直wa,,在修建机场和修路方面,如果修路的费用和修飞机场的相同,则优先考虑修飞机场,, 法一: #include<iostream>#include<string.h>#include<string>#include<algorithm>#define pf printf#include<cstdio>#defi

http://acm.hdu.edu.cn/showproblem.php?pid=2112

HDU Today Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 8239    Accepted Submission(s): 1957 Problem Description 经过锦囊相助,海东集团终于度过了危

http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2467cid=1131

Steps Time Limit: 3000MS Memory limit: 65536K 题目描述   One steps through integer points of the straight line. The length of a step must be nonnegative and can be by one bigger than, equal t

http://acm.hdu.edu.cn/showproblem.php?pid=1874 简单题

畅通工程续Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 15805 Accepted Submission(s): 5406Problem Description某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多

http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2502cid=1122

火星计数法 Time Limit: 1000MS Memory limit: 65536K 题目描述火星人的计数规则里只有a,b,c,d四个字母,计数规则从小到大是 a,b,c,d,aa,ab,ac,ad,ba,……。给出来由a,b,c,d四种字母组成的火星数字,算出该数字是第几个(从1开始)。输入第一行输入一个数T代表测试用例组数(T<=200),接下来T组测试用例,每组测试数据为一个火星数字(