自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Yeason的博客

从事信息学OIer的博客

  • 博客(87)
  • 收藏
  • 关注

原创 爬山法 NOIP采药

#include#include#include#includeusing namespace std; const int MAXT = 1001;const int MAXM = 101;struct med{ int val,tim;} p[MAXM];int T,M;int ans = 0;bool cmp(med a,med b){return a.val*b.

2014-06-30 22:31:51 464

原创 rqnoj 682 wikioi 1285 noi2004 郁 闷 的 出 纳 员

郁 闷 的 出 纳 员cashier.pas/c/cpp【问题描述】OIER公司是一家大型专业化软件公司,有着数以万计的员工。作为一名出纳员,我的任务之一便是统计每位员工的工资。这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的工资。如果他心情好,就可能把每位员工的工资加上一个相同的量。反之,如果心情不好,就可能把他们的工资扣除一个相同的量。我真不知道除了调工资他还

2014-03-19 21:20:15 447

原创 wikioi1285宠物收养所

#include#include#include#include#include#includeusing namespace std;const int INF = 1<<28;const int k = 65537;const int mod = 1000000;const int PET = 0;const int MAN = 1;int ans = 0;struc

2014-03-18 21:07:29 513

原创 pku1106 transmitters

向量叉积,水过。注意读入lf,千万别想我写了个llf.....#include#include#includeusing namespace std;const int MAXN = 1001;const double e = 1e-10;int N;struct point{ double x , y; point(doub

2014-01-22 21:01:18 459

原创 mobile

//mobile 题目来自Mr.S#include#include#include#include#include#include#define Sleft(x) ((x<<1))#define Sright(x) ((x<<1|1))#define Sfather(x) ((x>>1))using namespace std;cons

2014-01-20 21:12:53 453

原创 pku1151 atlantis

没啥说的,直接代码://pku 1151 atlantis#include#include#include#include#include#include#define Sleft(x) ((x<<1))#define Sright(x) ((x<<1|1))#define Sfather(x) ((x>>1))using namespac

2014-01-20 21:11:55 532

原创 maxsum by Ye

#include#includeusing namespace std;const int MAX_N = 100002;int p[MAX_N];int s[MAX_N];int N,L;void init(){ int i; scanf("%d %d",&N,&L); for (i=1;i<=N;i++) scanf("%d",&p[i]);}int work(in

2013-12-25 22:08:05 464

原创 pku3277 horizon

首先,看到这题就感觉亮瞎,好像没有任何突破口,因为以前做过一个矩阵求并的问题,那个题目还是比较难的,但是这道题目和hdu1225所不同的地方在于,他的所有矩阵y1坐标都是0,也就是说建筑物都是落地的,不存在悬空的情况。然后我们分析他和poster这一题非常相似,但是问题在于Poster可以覆盖,而其却不存在覆盖的情况。这样是不是就不能解决了呢?当然不是。我们可以把建筑物的高度从低到高排序,然后从低

2013-12-16 21:59:43 469

原创 poster

#include#include#include#includeusing namespace std;const int MAX_N = 10001;const int root = 1;struct node{ int s,e;};struct node p[MAX_N*10];int wide[MAX_N*10];struct Treenode{

2013-12-16 21:40:42 597

原创 pku 3667 hotel

感觉题目不难啊,就是处理有点烦而已。水过了。pku30题留个纪念。#include#includeusing namespace std;const int OTHER = 0;const int FULL = 1;const int EMPTY = -1;const int QUERRY = 1;const int LEAVE = 2;const int MAX_N = 50

2013-12-04 22:28:20 461

原创 区间修改lazy线段树

开关灯 lites[问题描述]Farmer John尝试通过和奶牛们玩益智玩具来保持奶牛们思维敏捷。 其中一个大型玩具是牛栏中的灯, N (2 奶牛被连续的编号为1..N,每头牛都站在一个彩色的灯下面。 刚到傍晚的时候, 所有的灯都是关闭的。 奶牛们通过N个按钮来控制灯的开关, 按第i个按钮可以改变第i个灯的状态。奶牛们执行M (1 令里包含两个数字S_i和E_

2013-11-27 21:49:20 612

原创 noip2013题解 普及组

这次整体题目个人认为不是非常难,但是想取得高分并不容易。接下来是我的个人分析(包含ak代码)1.计数问题首先,第一眼看到这个题目我就惊呆了。因为做过。看了看数据范围,比较小,每个数字最多6位,1000000个,6000000次秒过是没有太大的问题的。只要将每一个数字分离即可。 #include#includeusing namespace std;const int

2013-11-22 23:20:57 2385

原创 culture文化之旅

#include#include#includeusing namespace std;const int MAX_N = 101;const int INF = 16843009;int N,K,M,S,T;int C[MAX_N];int G[MAX_N][MAX_N];int R[MAX_N][MAX_N];int dist[MAX_N];bool Inqueue[MA

2013-10-31 20:34:26 1185

原创 tractor 拖拉机

#include#include#include#includeusing namespace std;const int MAX_M = 1002;int dx[]={0,0,1,-1};int dy[]={1,-1,0,0};bool G[MAX_M][MAX_M];bool used[MAX_M][MAX_M];int f[MAX_M][MAX_M];int N;st

2013-10-31 20:32:02 935

原创 欢乐派对 堆优化+邻接表

不解释,这里只是分享代码,练练堆#include#include#include#include#includeusing namespace std;const int MAX_N = 1001;const int INF =1<<30;struct nodelink{ int s,t,w;}pnod;vector G1[MAX_N],G2[MAX_N];

2013-10-31 20:30:42 597

原创 Test 12.10.17 by Song

古老的显示屏首先是简单的宽搜每次找出最优的距离顶点(距离指该定点到亮点的最短距离)去松弛四周的顶点。如果这个顶点自己是亮的,那么他的最短距离是0不详细说,只是个大概的思路#include#include#include#includeusing namespace std;const int MAX_N = 201;const int MAX_M = 4;cons

2013-10-31 20:27:25 551

原创 子序列和问题 无分析

#include#include#includeconst int MAX_L = 101;int f[MAX_L];bool used[MAX_L];int N;int ans;int init(){ scanf("%d",&N);}int dfs(int step,int first){ if(step>N) {ans++;return 0;} int i;

2013-10-31 20:22:16 571

原创 Test 12.10.04 by Wang

1、足球比赛(football.cpp)问题描述:一场足球比赛正在进行,记分规则很简单:一场比赛中,胜方得3分,负方不得分,如果打平,双方各得一分。现给出比赛的队伍及各自的得分,统计出平局的场数。输入格式:第一行为T和N,分别表示比赛队伍数和已经进行的比赛场数(2≤T≤200,1≤N≤10000),接下来T行,每行为一个字符串和一个整数,分别表示参赛队伍的名称和它的得分。队伍名称的

2013-10-31 20:17:26 743

原创 stick棍子by Ye

这里给一下私藏的题目,棍子,挺难,不分析了,直接贴出代码,不过只有90。TLE超时。poj上有题目,大家自己看看。棍子【问题描述】一个电视节目正准备一个与观众互动的游戏,游戏的内容是让观众从箱子里抽出若干根棍子,若观众能成功地把抽出来的棍子摆成一个多边形,便可得到一份礼物。当然,为了做好这个节目,这个游戏也需要精心设计,使得游戏既不会太难而影响现场气氛,也不会太容易而缺乏挑战性

2013-10-31 20:09:36 768

原创 delivery route配送路线

这里首先奉上代码。最近有点忙。下次再发题解。#include#include#include#include#include#include#include#includeusing namespace std;const int root = 1;const int INF = 1<<30;const int MAX_T = 1000002;const int MAX

2013-10-30 22:33:38 873

原创 wikioi p3044 矩形面积求并

同样的离散化,题解wiki上有。略。#include#include#include#includeusing namespace std;const int MAX_N = 201;int N;bool f[MAX_N][MAX_N];double x[MAX_N];double y[MAX_N];int lengthx;int lengthy

2013-09-14 16:20:19 535

原创 wikioi p3037 线段覆盖 5

离散化实现略,直接代码:#include#includeusing namespace std;const int MAX_L = 2000001;long long f[MAX_L];struct pnode{ int id; int times; bool isleft; long long value;}p[MAX_L]; long lon

2013-09-14 16:17:19 556

原创 wikioi p1079 回家

宋老师讲过。#include#include#include#include#includeusing namespace std;const int MAX_N=101;int r[MAX_N][MAX_N];int have[MAX_N];int d[MAX_N];int p;int init(){ scanf("%d",&p); int i;

2013-09-01 10:34:36 595

原创 wikioi p1077 多源最短路

题目简单邻接矩阵+dijkstra#include#include#include#include#includeusing namespace std;const int MAX_N=101;int r[MAX_N][MAX_N];int have[MAX_N];int d[MAX_N][MAX_N];int N;int M;int init(){ sc

2013-09-01 10:31:16 737

原创 wikioi p1041 Car的旅行路线

题目很烦。刷pascal的。program aa;const maxlongin=1000000000;var k,n,s,t,b,e,i,j,cc,z,xmid,ymid,x4,y4:longint; ans:real; map:array[1..100,1..100] of real; dis:array[1..500] of real; x,y:arr

2013-09-01 10:28:58 822

原创 wikioi p1174 靶形数独

这题我原先是下标程的,先贴标程代码,待会我再贴我自己的代码。pascal 不喜勿喷~type ctype=array[1..9,1..9,1..9]of boolean; nctype=array[1..9,1..9]of longint;const w:array[1..9,1..9]of integer=((6,6,6,6,6 ,6,6,6,6),

2013-08-31 17:07:44 756

原创 wikioi p1225 八数码难题

数据弱,没加优化都过了。dfs和bfs的题目我就不多说了,就是繁杂的模拟。错了的话都是小问题。#include#include#include#include#includeusing namespace std;const int max_n = 3628810;const int max_r = 4;bool f[max_n];struct no

2013-08-31 17:05:52 594

原创 wikioi p1073 家族

叫亲戚的话,大家都应该知道了吧~#include#includeusing namespace std;const int MAX_N = 5001;int R[MAX_N];int N,M,P;int findroot(int t){ if (!R[t]) return t; else return R[t]=findroot(R[t]);

2013-08-31 17:03:25 588

原创 wikio p1282 约瑟夫问题

首先这道题目的数据规模还是很大的,而且数据也比较强大的。所以这题需要用到线段树。首先建立线段树,建立孩子信息,以及该子树未出局的小朋友数量。我们建立好之后,可以add一下,计算还有多少孩子没有出局(当然如果通过循环,N-i+1就是剩余的孩子数量)把M%=N-i+1这样可以做到优化,如果空循环的话不仅没有用而且可能会导致超时。这个时候我们应该有一个上一个报到的孩子编号,然后然

2013-08-31 17:00:37 520

原创 wikioi p1081 线段树练习 2

前缀和可过。#includeusing namespace std;const int MAX_N = 100001;int A[MAX_N];int T[MAX_N];int N,Q;int init(){ int i; scanf("%d",&N); for (i=1;i<=N;i++) scanf("%d",&A[i]);}int w

2013-08-31 16:51:45 745

原创 wikioi p1080 线段树练习

暴力枚举可过。#includeusing namespace std;const int MAX_N = 100000;int A[MAX_N];int P[MAX_N];int N;int M;int main(){ scanf("%d",&N); int i; for (i=1;i<=N;i++) scanf("%d",&A[i]),P[i]=P

2013-08-31 16:50:59 511

原创 wikioi p1163 访问艺术馆

记得wikioi开站不久的时候,我做这题被吓住了。后来发现没什么难度。首先dfs序记录结点信息。Left为左孩子 right为右孩子time表示走廊的时间 cost表示价值(如果为0 表示为分岔口)int dfs()这题要详细说一下。如果记录到leaf结点那么记录下编号old_leafleaf++表示读入就要读入下一个节点那么左孩子=dfs()右孩子=d

2013-08-30 21:05:41 407

原创 wikioi p1052 地鼠游戏

题目大意 给出N个任务以及每个任务的奖励W和完成期限T,要求输出获得的最大奖励。考察算法 贪心 并查集 二叉堆算法一这道题目我们很容易想到一个贪心策略:每次让奖励最多的任务尽量准时完成。这样我们可以先把这些任务按照奖励的数目进行排序,把大的排在前面,先进行放置。假如罚款最多的一个任务的完成期限是T,我们应该把它安排在哪个时段完成呢?应该放在第T个时段,因为放在1~T任意一个位置,效果都

2013-08-27 18:03:29 815

原创 wikioi p1245 最小的N个和

这个题目的意思就是有两个集合,我们从每个集合当中任意选择一个,求最小的N个选择方案和。那么我们可以先对A B集合排序可以得到Ai+Bj同样可以得到Ai+Bj那么可以得到Ai+Bj那么我们就可以到一个很好的性质如果在A集合中选择同样的集合,B中的选择对于和有关键影响我们就可以按照这个规律建堆。有N个节点,每个节点都确定在A集合中的选择第i个节点就选择A

2013-08-27 13:37:54 1034

原创 wikioi p2144 砝码称重 2

前奏,首先这题我一开始没有思绪,后来先用dfs+打表过了。#include#include#includeusing namespace std;const int MAX_N = 1001;const int INF = 1<<30;int N,M;int f[MAX_N];int ans=INF;int countf;bool changed;int init(){

2013-08-27 13:24:02 991

原创 wikioi 提高组高精度

很简单的试商。#include#include#includeusing namespace std;const int MAX_N = 1001;const int MAX_M = 501;const int INF = 10;char a[MAX_N],b[MAX_N];int c[MAX_N],d[MAX_N],t[MAX_N],f[MAX_N];int z[MAX_N

2013-08-27 12:27:36 542

原创 wikioi p1553 互斥的数

仍然是二分,hash其实要简单多了,但关键是不熟啊~#include#include#include#include #include#includeusing namespace std;const int MAX_N = 100001;int N,P;int M;int f[MAX_N];int init(){ int i; scanf("%d %d",&N,&

2013-08-26 20:56:57 676

原创 wikioi p1230 元素查找

还没学Hash,用二分写的#include#include#include#include #include#includeusing namespace std;const int MAX_N = 100001;int N,M;int f[MAX_N];int init(){ int i; scanf("%d %d",&N,&M); for (i=1;i<=N;i

2013-08-26 20:55:49 681

原创 wikioi p1380 没有上司的舞会

第一次发个有点难度的。首先根据题目的描述可以知道,这个是一个树,有这样一个关系,如果选择了某一个节点,那么就不能够选择他的孩子节点,但是不代表不选择他的子孙。每一个节点都有一个价值,请问如何选择这棵树的节点使得他们的价值总和最大。那么我们可以建立f[i][0]和f[i][1]分别表示选择第i个节点或者不选择,他和他的子树最大的价值总和。如果不选择,则f[i][0]=Σf[x][1]

2013-08-26 20:54:56 701

原创 wikioi p1231 最优布线问题

基本复制,这些题目也没声好说的,没什么太大的技巧。主要是运用基本算法。#include#include#include#includeusing namespace std;const int MAX_N =100001;struct node { int s,t,d;}R[MAX_N]; int N;int M;long long ans=0;int T[MAX_N

2013-08-26 20:43:34 958

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除