模拟
文章平均质量分 53
South__wind
ACMER
展开
-
poj 3080 Blue Jeans
求n个字符串的大于三的最长公共子序列。kmp+暴搜枚举即可。#include#includechar str[10][65];char ans[65],s[65];int next[65];int t,n,max,num;void get_next(char *s,int slen){ int i=-1,j=0; memset(next,0,原创 2012-08-29 15:05:49 · 222 阅读 · 0 评论 -
hdu 1160 FatMouse's Speed
已知一组老鼠的质量和速度,找出一个最大的子集满足越肥的老鼠跑的越慢。先对老鼠的质量进行从小到大排序,质量相同的情况下对速度进行从大到小排序。然后对速度运行最长单调递增子序列算法。递归输出结果。#include#include#includeusing namespace std;struct node{int m;int s;int num;}mou原创 2012-09-01 20:05:25 · 786 阅读 · 0 评论 -
hdu 4004 The Frog's Games
二分答案:#include#includeusing namespace std;int a[500001];int b[500001];int l;;int n,m;bool ok(int mid){ int sum=0; int bsu=0; for(int i=1;i<=n+1;i++) {原创 2012-09-01 21:30:49 · 700 阅读 · 0 评论 -
hdu 3986 Harry Potter and the Final Battle
很多人认为这是在求次短路,其实不然,这个题只要spfa()一次,先把最短路径求出来,在枚举拆掉最短路的每一条边,每次拆一条边就进行一次spfa(),之后还原先前拆的边,该拆另一条边,记录最小的时间即可。#include #include #define INF 1000000#define MAXN 2005using namespace std;struct原创 2012-09-02 01:31:25 · 550 阅读 · 0 评论 -
hdu 1392 Surround the Trees
凸包:#include#include#includestruct node{ int x,y;};int stack[101];int top;struct node point[101]; void swap(struct node point[],int x,int y) //交换两点{ struct node temp;转载 2012-09-01 20:37:37 · 345 阅读 · 0 评论 -
hdu 1199 Color the Ball
离散化,注意染色的顺序,一开始忽略了这个WA了。#includeusing namespace std;struct Node{int start;int end;}node[2000];int a,b,st,en,n,num;char c;bool cmp(Node a,Node b){ return a.start<b.start;原创 2012-09-01 20:11:29 · 380 阅读 · 0 评论 -
poj 2541 Binary Witch
#include#includechar str[1001000];int next[1001000];int n,m;int main(){ while(scanf("%d%d%s",&n,&m,str)!=EOF) { int end=n+m; while(n<end) {原创 2012-08-27 20:51:41 · 365 阅读 · 0 评论 -
ccsu oj 1509 Build the given towers
题目大意: 有三种正方形的1*1的方块,颜色分别为红黄蓝,用0,1,2表示,还有一种1*2的灰色方块(它只能竖着摆),用b表示,先给定一串字符串,和能摆放的宽度和每种方块的数量,判断能否合理的摆放这些方块,使得从左往右看能摆出字符串要求的形状。 模拟题,从右往左摆,从上往下摆,遇到奇数个b就重新开辟一行,宽度随之增加。模拟摆方格的过程,并且判断方格的个数和摆放宽度是否满足要求。原创 2012-08-28 02:09:18 · 299 阅读 · 0 评论 -
hdu 3554 Another Contest
简单模拟,关键在于排序。#include #include#include#define maxn 1005using namespace std;struct Node{int id,sum,n;}x[maxn];int tmp[maxn];bool cmp(Node a, Node b){ if(a.sum!=b.sum)return a.原创 2012-09-20 12:59:37 · 462 阅读 · 0 评论 -
hdu 1029 Ignatius and the Princess IV
#includeint hash[100000];int main(){ int n,i,t; while(scanf("%d",&n)!=EOF) { for(i=0;i<100000;i++)hash[i]=0; for(i=1;i<=n;i++) {原创 2012-08-31 01:11:04 · 255 阅读 · 0 评论 -
hdu 1026 Ignatius and the Princess I
经典的bfs#include#includeint n,m;int prison[200][200];char map[200][200];int visited[200][200];struct point{ int x,y,t; point* pre;}queue[20000];int dx[4]={0,0,-1,1};int dy[原创 2012-08-31 01:08:49 · 274 阅读 · 0 评论 -
poj 2362 Square
dfs#include#include#include#includeusing namespace std;int t,n,len,sum;int stick[30],vis[30];bool cmp(int a,int b) { return a>b;}int dfs(int i,int rest,int trest){ if(trest原创 2012-08-29 15:48:14 · 273 阅读 · 0 评论 -
poj 2034 Anti-prime Sequences
题意要求给定一个范围,然后指定一个区间d,使(2到d)的任意区间之和为合数即可。深搜枚举#include#include#includeusing namespace std;int use[1001],prime[10001],vis[1001];int n,m,d,flag;bool dfs(int d,int th){ if(th==原创 2012-08-29 15:56:52 · 243 阅读 · 0 评论 -
poj 2823 Sliding Window
单调队列,在队尾插入,删除。在队头删除。在求最大值的时候,把每个插入的元素与队列尾的元素逐一比较,只要队尾元素比插入的元素小就删除队尾元素,直到队尾元素比待插入元素大为止。同时还要删除过期元素,过期元素从队头进行删除,直到满足当前插入元素的下标-间距+1<=对头元素的下标为止。求最小值同理。。。最后不得不说这段代码跑了9735MS,AC的好险啊。。。#include原创 2012-08-30 16:21:45 · 242 阅读 · 0 评论 -
hdu 1003 Max Sum
最大连续子段和:#includeusing namespace std;int a[100000];int start,end;int main(){ int n,m; while(cin>>n) { for(int i=0;i<n;i++) { cin>>m; for(int j=1;j<=原创 2012-08-30 16:35:56 · 218 阅读 · 0 评论 -
hdu 1010 Tempter of the Bone
dfs+剪枝#include#includeusing namespace std;int bj[10][10]={0};char mg[10][10];int t,p,t1,t2;int e_x,e_y,k_x,k_y;int m,n;void dfs(int x,int y,int t1){ if(x==e_x&&y==e_y&&t1==t原创 2012-08-30 16:38:36 · 245 阅读 · 0 评论 -
hdu 1016 Prime Ring Problem
#includeusing namespace std;bool isprime(int);void backtrack(int);bool check(int);int n;int tu[21];int main(){ int count=0; while(cin>>n) { count++; tu[1]=1; co原创 2012-08-31 01:03:27 · 274 阅读 · 0 评论 -
hdu 1051 Wooden Sticks
按照长度从长到短排好序,若长度相等,则以重量排序,再求重量的最长递增序列。类似于hdu的FatMouse's Speed 。#include#includeusing namespace std;struct sticks{ int l; int w;}xx[5005];int f[5005];int cmp(sticks a,sticks b)原创 2012-08-31 01:17:07 · 413 阅读 · 0 评论 -
poj 3250 Bad Hair Day
Source Code #include#includeusing namespace std;int n,x;long long sum;int main(){ while(cin>>n) { sum=0; dequeq; for(int i=0;i<n;i++) { cin原创 2012-08-30 16:01:26 · 337 阅读 · 0 评论 -
poj 1862 Stripies
优先队列的应用,主要是理解为什么每次要取最大的两个数,因为题目要求的是最后剩下来的那个变形虫的最小质量,所以我们要使质量大的变形虫尽量多的开平方。#include#include#include#includeint n,x;using namespace std;int main(){ while(cin>>n) {原创 2012-08-30 16:05:19 · 1105 阅读 · 0 评论 -
台球碰撞
import java.awt.*;public class BallGame extends Frame {Image sun = Toolkit.getDefaultToolkit().getImage("images/sun.jpg");double x=100;double y=100;double degree = 3.14/3;public void原创 2015-02-21 00:32:38 · 762 阅读 · 0 评论