上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 17 下一页
摘要: 过去的两天,第一次参加了省赛 , 可能真的是RP爆发了,我们队拿了个第一名,真的很出乎意料。。星期六那天早上 会升的短信一个接着一个的“骚扰”,害得我实在睡不下去了,5点多一点就起床了,估计是上大学以来起的最早的一天了。。然后6点准时出发,我们1行人浩浩荡荡的前往火车站 ,在火车站等了好长时间,要上车的时候碰见了信商的郭老师,和他聊了几句就上了火车。到了洛阳已经累的不行了,又做了快一个小时的公交车,终于到达了宾馆,见到了我们的教练李老师。最后又折腾了一番,终于在吃过中午饭后在宾馆美美的睡上了一觉。。。下午热身赛精力很充沛, 热身赛第一个是模拟题, 当时有点小激动,思路不太清晰,搞的时间就长了一 阅读全文
posted @ 2011-05-23 19:25 奋斗青春 阅读(483) 评论(0) 推荐(2) 编辑
摘要: 这题比较容易看出来是2-sat.2-sat箴言:如果a与b矛盾,则添加单向边(a,b').由题意可以看出:最好的情况是每个圆的半径都相等。所以就可以二分枚举半径了:对于每一个半径,用2-sat判断是否有解。矛盾条件:圆心距小于周长的2倍。。之后就可以直接用模板来解了:View Code 1 # include<stdio.h> 2 # include<math.h> 3 # define N 205 4 # define M 40005 5 struct node{ 6 int x,y; 7 }s[N]; 8 struct node1{ 9 int from,t 阅读全文
posted @ 2011-05-19 20:05 奋斗青春 阅读(976) 评论(0) 推荐(1) 编辑
摘要: 昨天刚开始看2-sat, 强连通分量的更深层次的应用。。目前为止还只能判断一个2-sat是否有解,还不能求出具体的解,对于后面的拓扑排序理解的不是很透彻。。Problem Description有n对夫妻被邀请参加一个聚会,因为场地的问题,每对夫妻中只有1人可以列席。在2n 个人中,某些人之间有着很大的矛盾(当然夫妻之间是没有矛盾的),有矛盾的2个人是不会同时出现在聚会上的。有没有可能会有n 个人同时列席?Inputn: 表示有n对夫妻被邀请 (n<= 1000)m: 表示有m 对矛盾关系 ( m < (n - 1) * (n -1))在接下来的m行中,每行会有4个数字,分别是 A 阅读全文
posted @ 2011-05-18 19:33 奋斗青春 阅读(604) 评论(0) 推荐(0) 编辑
摘要: 刚开始一直没能读懂题,后来读懂题了,感觉没什么思路,后来看discuss里面的二分答案,顿时豁然开朗。。。先把所有的道路排序,二分一条道路,把长度比当前短的赋值为0,把长度比当前大的赋值为1,用最短路判断从1到n的最短路径ans,如果ans>k 再二分比当前道路长的路径, 否则二分比当前路径短的路径,直到找到一个最短的路径符合条件。。贴下代码: 1 # include<stdio.h> 2 # include<string.h> 3 # include<stdlib.h> 4 # define N 1005 5 # define M 10005 6 # 阅读全文
posted @ 2011-05-16 18:41 奋斗青春 阅读(262) 评论(1) 推荐(0) 编辑
摘要: 离散化+深搜。对给出的n个数排序,然后离散,求出每个数有多少个,然后递归判断每个数出现多少次时 能使和等于sum,需要注从大数开始深搜。。代码:# include<stdio.h># include<string.h># include<stdlib.h>int a[20],b[20],c[20],sum,ans,flag,ys;int cmp(const void *a,const void *b){ return *(int *)b - *(int *)a;}void dfs(int i){ int j,k,h; for(j=b[i];j>=0;j 阅读全文
posted @ 2011-05-16 18:28 奋斗青春 阅读(438) 评论(0) 推荐(1) 编辑
摘要: 两道搜索的题目,难度应该还差不多。。1254推箱子有一点很重要,如果判断cur是不是目标点的话会超时,需要判断next是不是目标点。即:while(!q.empty()){ cur=q.front(); q.pop(); if(cur==目标点) return 1; ............}这样会超时的,需要在把next加入队列的时候就判断它是不是目标点。,这点需要注意。。1175连连看需要用到两个visit数组, 因为访问到该节点时有可能是竖直方向过来的,也有可能是水平方向过来的,需要用两个visit数组,分别记录在两个方向上的最小值。贴下1175代码:# include<stdio 阅读全文
posted @ 2011-05-15 15:11 奋斗青春 阅读(383) 评论(0) 推荐(1) 编辑
摘要: 字典树+深搜。。这个题和hdu上的T9有点相似,不过应该比那个要稍难一点,这个需要处理?和*的情况,还要处理模式串相同的情况。。这是我们前几天比赛的题目,当时没有做出来,开始的时没有想起来用字典树,后来队友说用字典树就写了一下。写着写着感觉还可以,把?和*分别看成是next的第26和27,建树的时候很简单。之后查询的时候要考虑全面,对于*进行特殊的处理,它可能是一个字符也可能是多个字符也可能没有字符。。还有一点就是对于相同的模式串, 要标记一下。例如2 1abcabcabc刚开始的时候把temp->num=-1;Insert第0个模式串的时候把当前的temp->num=0;之后插入 阅读全文
posted @ 2011-05-15 14:59 奋斗青春 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 描述 给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些括号匹配起来。如:[]是匹配的([])[]是匹配的((]是不匹配的([)]是不匹配的输入 第一行输入一个正整数N,表示测试数据组数(N<=10)每组测试数据都只有一行,是一个字符串S,S中只包含以上所说的四种字符,S的长度不超过100 输出 对于每组测试数据都输出一个正整数,表示最少需要添加的括号的数量。每组测试输出占一行 样例输入 4[]([])[]((]([)]样例输出 0032队友提供的题目,刚 阅读全文
posted @ 2011-05-13 17:06 奋斗青春 阅读(4900) 评论(1) 推荐(1) 编辑
摘要: 去年省赛的第八题, “ROOM ASSIGNATION”。和我前几天写的 求某个区间中出现最多的数 差不多。。都是要记录左右端点的连续情况。。题目的意思很简单,问你有没有连续的n的房间,如果有,就输出以那个房间开始(最小的)。如果没有就输出0;还有一种情况:客人要退房间,然后退掉n——n+len-1 这些房间。具体的看代码(其中的updata1,updata2,基本上一样,完全可以只用其中的一个函数,为了方便起见,我没有融合,一个是释放的房间,一个是占用房间):# include<stdio.h># include<string.h># define N 50005st 阅读全文
posted @ 2011-05-13 16:09 奋斗青春 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 刚开始写这道题目的时候用的是离散化。。把所有的坐标都给存到数组里面,然后对数组进行排序。。然后每帖一张海报就二分找到两个端点,最后对所有的顶点枚举一遍就行了,,写出来后在pku很快就AC了,之后又在南工交,wa了,感觉存在某些实例过不了。。在pku的discuss里果然发现了,每一个顶点它不单纯的只是一个顶点,它是一段板。比如31 101 36 10这组实例就没能过,因为对于3和6之间的那一段距离访问不到。。之后又想了一种方法,如果排序之后的两个相邻点之间的距离不为1,就增加一个顶点,可以是他们两个之间的任一点,不过为了方便起见,增加s[i-1]+1这个点。(对于上面的那个例子而言,3和6虽然 阅读全文
posted @ 2011-05-13 15:49 奋斗青春 阅读(430) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 17 下一页