自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

GameRoad

立志做一名懂美术的程序员O(∩_∩)O

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

原创 OpenGL实现画线-线形-线宽转变

思路:在画线算法的基础上,添加像素掩膜,&1为1则画否则不画。// ====== Computer Graphics Experiment #4 ======// | Line style using pixel mask |// | and line width | // =============

2017-05-31 20:05:16 4150

原创 openGL-边界填充

思路:先将线框边界画出来,填充为白色。之后用glReadPixels函数得到某个像素点的颜色值。之后判断是否被填充过,或是否为边界颜色,如果没有被填充,就将其四个方向的像素点入栈再填充void Boundaryfill (int seedx,int seedy){ CMyStack stk1; long color=RGB(255,0,0); //填充颜色 long

2017-05-31 19:37:08 1942

原创 poj3669-Meteor Shower

思路:把图标记后有条件的bfs#include #include #include #include #include #include using namespace std;const int inf=0x3f3f3f3f;int mp[405][405];int vis[405][405];int n,m;int data[4][2]={0,1,0,-1,1,0

2017-05-25 16:25:03 284

原创 1640 天气晴朗的魔法(二分最大生成树)

思路:二分最大边值,跑最大生成树。stdio.h最后一个样例就0.5s。。cstdio偶尔1.12s#include #include #include #include #include #include using namespace std;const int maxn=100005;typedef long long ll;struct

2017-05-22 18:50:49 425

原创 51nod1639 绑鞋带

思路:通过前一次成单环的概率推过来,索要变换的概率是 插入之前的环/自己成环的+插入之前的环;#include #include#include #include #include #include using namespace std;const int maxn=100005;int main(){ double ans=1; int n

2017-05-22 17:16:13 300

原创 1631 小鲨鱼在51nod小学

1631 小鲨鱼在51nod小学基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注鲨鱼巨巨2.0(以下简称小鲨鱼)以优异的成绩考入了51nod小学。并依靠算法方面的特长,在班里担任了许多职务。每一个职务都有一个起始时间A和结束时间B,意为小鲨鱼在[A, B]时间内,担任了某职务(in

2017-05-22 16:07:21 311

原创 New Year Tree CodeForces - 620E

题意:给出区间内数字,有两个操作。操作一更改X的所有子树,操作二询问子树中不同数字个数。思路:之前没想到二进制优化,本来认为60个气球很少,就开个数组维护了个vis标记,然而TLE了。上网查说的很有道理60 完全可以用2^60的long long 存在,这样就很好做了!#include #include #include #include #include #includ

2017-05-18 20:53:17 600

原创 Not Equal on a Segment CodeForces - 622C

题意:找出l->r中不等于x的任意位置输出#include #include #include #include #include using namespace std;const int maxn=200005;int a[maxn];int b[maxn];int main(){ int n,m; scanf("%d%d",&n,&m)

2017-05-18 19:04:01 340

原创 Educational Codeforces Round 6 C. Pearls in a Row

题意:找到最大连续有重复数字的子段#include #include #include #include #include using namespace std;const int maxn=300005;int a[maxn];int l[maxn];int r[maxn];int now[maxn];int main(){ mapmp;

2017-05-18 18:55:37 230

原创 POJ 3237 Tree(树链剖分-线段树点更新-区间更新-区间最值查询-入边)

题意:给出若干个操作,询问路径最大值。思路:裸树链剖分,只不过需要记录最大值和最小值,当翻转的时候可以标记一下,然后互换最大值和最小值。PS:WA了5个小时,就因为线段树函数太多。。有个函数忘记释放标记了。真是TM的智障#include #include #include #include using namespace std;const int max

2017-05-18 15:49:26 415

原创 POJ 2763 Housewife Wind(树链剖分+线段树点更新-区间查询+入边)

题意:给出顶点,边,以及起始点。对于0操作询问S点到a的距离1操作更改给出第a条边的权值为b注意:每次0操作后s变为a思路:树链剖分,只不过此题是用线段树的点更新,区间查询,而树链剖分的部分也做了部分更改#include #include #include #include using namespace std;const int maxn = 10

2017-05-17 21:26:33 381

原创 HDU 3966 Aragorn's Story(树链剖分+线段树+入点)

题意: I,从 a-》b的路线上+cD,从a->b的路线上+cQ,   点权和思路:树链剖分。第一次学。#pragma comment(linker, "/STACK:102400000,102400000")#include #include #include #include using namespace std;const int maxn

2017-05-17 15:59:20 322

原创 CodeForces 612C Replace To Make Regular Bracket Sequence

题意:括号匹配。注意只能变为同的情况的括号。之前写没注意如果右括号入栈就应该判为Impos#include #include #include using namespace std;char s[10000005];int tb[1000];int main(){ tb['[']=1; tb['(']=2; tb['{']=3; tb['

2017-05-17 15:12:17 283

原创 1038 01背包动态规划

#1038 : 01背包#include #include #include using namespace std;const int maxn=100005;int dp[maxn];int val[maxn];int price[maxn];int main(){ int n,m; scanf("%d%d",&n,&m); for(int i=1;

2017-05-13 23:54:30 227

原创 #1015 : KMP算法 裸kmp

输入第一行一个整数N,表示测试数据组数。接下来的N*2行,每两行表示一个测试数据。在每一个测试数据中,第一行为模式串,由不超过10^4个大写字母组成,第二行为原串,由不超过10^6个大写字母组成。其中N输出对于每一个测试数据,按照它们在输入中出现的顺序输出一行Ans,表示模式串在原串中出现的次数。#include #include #includ

2017-05-13 20:03:27 220

原创 覆盖的面积 HDU - 1255 线段树-扫描线

思路:建议先做HDU 1542Atlantis  是一样的题,不妨先A了 1542再来搞这题。改变的只是求矩阵的交, 那么我们只是要考虑如何能找到一个区域可以被重复的覆盖即可。只要找到cover标记,如果是>1的 则表示这个线左侧有至少两条,那么必定是交区域#include#include#include#include

2017-05-13 15:57:20 310

原创 Atlantis HDU - 1542 (线段树扫描线-矩阵面积和)

题意:给出矩阵的左下角点和右上角点,询问这些矩阵构成的图里,覆盖的面积和,重复覆盖的只算一次。理解:这是一个模板题,今天也是才弄懂写一下自己对他的理解。网上有一个图http://blog.csdn.net/wlxsq/article/details/47254571#。 画的很不错。个人感觉他与普通线段树的区别在于,这颗线段树的l~r记载的是纵坐标的区间,x记载了再当前位置 最

2017-05-13 15:47:13 339

原创 CodeForces 600C Make Palindrome

题意:改变最少的字母,得到一个典序最小的回文串。可以重排,重排不算操作次数。思路统计个数,如果是偶数,两侧放,奇数的话找一个后面的奇数抵消,如果找不到放在中间#include #include #include #include #include #include #include #include #include #include using namespa

2017-05-12 10:32:41 255

原创 CodeForces 600A Extract Numbers

题意:区分字符和数字。空输出 “”,无输出-;思路:逐个遍历,仍在string里。写了个输入输出流和scanf的混用,竟然没出错A了。。#include #include #include #include #include #include using namespace std;const int maxn=1000005;string a[maxn

2017-05-12 10:20:34 340

原创 CodeForces 609D Gadgets for dollars and pounds

题意:有n天,m个工具,至少买k个工具,有s元。第二行第三行是 第一种 硬币 和第二种硬币的汇率。询问最少多少天可以买完。思路:二分查找答案,如果可以就左移,否则右移。在查找时,要查询的是在1-》x天内最小的汇率。可以直接排序,nlog,我用的是线段树,logn,感觉好傻。。复杂度分析没注意。。因为会TLE。找到最小汇率,取前k小的工具判断就好了#include #inc

2017-05-12 10:06:52 255

原创 HDU 4614Vases and Flowers(不定区间->定区间)

题意:插花和拔花的过程,1插,2拔,如果一个都不能插输出 “ ...” ,如果能插至少一朵花,但是不够插,就把其余的花扔掉思路; lazy标记为1 时表示已空, -1时表示已满,sum表示空瓶子个数,first表示最左边空瓶位置,last表示最右边空瓶位置,-1表示无自己第一次写的时候感觉的难点在于如何找到区间的右端点,发现kuangbin大神写了个二分,真是强,第一次

2017-05-11 15:54:19 224

原创 HDU 3974-Assign the task(dfs构建结构+裸线段树)

题意:一棵树的结构,父节点是老板,子节点是员工,每次给父节点分配的任务,立即会下分到他所有的子节点,有更新和查询命令。思路:第一次知道dfs可以用来维护某节点所管理的子节点的范围,因为dfs在回到开始点时,必定已经走过了所有子节点。在构建出一个可管理的区间后,就可以用裸线段树了#include #include #include #include #include

2017-05-10 18:52:34 550 2

原创 hdu1465 不容易系列之一 裸错排

#include #include #include #include #include using namespace std;unsigned long long f[205];int main(){ f[1]=0; f[2]=1; for(int i=3;i<=25;i++) f[i]=(i-1)*(f[i-1]+f[i-2]);

2017-05-09 23:37:48 235

原创 HDU 2068 RPG的错排

思路:特判1,2之后从n个数字中, 奇数注意算一半时候+1,选择一半~0的数字是放错位置的,并且将其错排#include #include #include #include #include using namespace std;unsigned long long f[205];int main(){ f[1]=0; f[2]=1

2017-05-09 23:35:18 217

原创 hdu 2049 不容易系列之(4)——考新郎

思路:选择m个位置是错误的,并且这m个位置错排。注意ll#include #include #include #include #include using namespace std;long long f[205];int main(){ f[1]=0; f[2]=1; for(int i=3;i<=20;i++) f[i]

2017-05-09 23:08:52 344

原创 FATE 完全背包 HDU - 2159

思路:完全背包多加一维,dp[i][j] 表示 杀死i个怪物时,在j耐久时,获得的经验值,如果大于n,则表示此i值是最低花费的耐久#include #include #include #include #include using namespace std;const int maxn=1005;int dp[maxn][maxn];int val[maxn];int

2017-05-09 22:44:57 315

原创 4~5月总结---杭州PAT天梯-ACM山东省赛-ACM总结

最近发生的事情还真是蛮多的!先是蓝桥杯,然后被学长们拖着进了杭州PAT决赛,之后回来又立即是山东省赛,被队友拖着拿了个金牌。。回来自己感觉都丢人。之前一直都没想在博客里写这些东西,总是内心认为在博客里写这些比赛后总结的经历会有点做作,但是今天最后一次和大三的学长们一起坐在集训队的实验室里,听着他们退役,感觉内心剧难受,突然觉得如果没留下点什么,要是以后就这么退役了,或者打完西安赛区就退

2017-05-09 21:27:26 406

原创 Coins 多重背包 HDU - 2844

题意:询问给定的硬币 可以构成 1~v里多少个钱数思路:裸完全#include #include #include #include #include using namespace std;const int maxn=100005;int dp[maxn];int num[maxn];int val[maxn];int n,v;void ze

2017-05-09 18:02:10 181

原创 Bone Collector 01背包 HDU - 2602

题意: 给出T组数据,n个石头,给出石头价值和价格。问在最大容量为v的情况下可以收获的价值思路:裸01#include #include #include #include #include using namespace std;int dp[1005];int price[1005];int val[1005];int main(){ in

2017-05-09 11:00:49 142

原创 HDU1864:最大报销额(01背包)

题意:给出最大报销金额,以及几个发票,发票的单张钱数必须少于1000,且A,B,C单张不能高于600.如果有其他D,E等 这张发票不能报销思路:先把可以报销的发票提取出来,然后裸背包#include #include #include #include #include using namespace std;int dp[3000005];int price

2017-05-09 10:52:22 312

原创 Robberies 01背包 HDU - 2955

题意:小偷去银行偷钱,每个银行有可以偷的钱数,以及被抓的概率。询问在不超过给定的概率下可以偷到多少钱思路:第一次写的时候拿概率作为了价格,钱作为了价值。WA了后想不明白。看了题解才知道。因为“不”被抓的概率并不是简单的相加,而是1- p1   *   1-p2  *  1-p3 这种类似的乘法规律,因此就无法拿概率作为相加关系而作为背包体积解法.  用所有银行的总金额作为背包容

2017-05-08 23:40:28 250

原创 HDU1114(完全背包)

题意:往储蓄罐里放钱,给出储蓄罐的重量,和总重量,以及钱的重量和单价。询问最少用多少钱可以装满盒子思路:初始化最大值,裸完全背包#include #include #include #include #include using namespace std;int voc[10005];int val[10005];int gram[10005];const in

2017-05-08 21:35:26 1137

原创 #1014 : Trie树

思路:裸字典树#include#include#include #include #includeusing namespace std;typedef struct tree{ tree *next[30]; int over;} tree;char s[205];tree *root;void creat( char str[] ){

2017-05-06 20:41:15 242

转载 给vs2012添加glut库

glut下载地址:http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip1.在c盘中搜索GL.h,将从网上下载的压缩包解压后,将glut.h放在和GL.h的相同目录中2.在安装vs2012的文件夹中,我的是  D:\vs2012\VC\lib,在这个路径下将glut.lib和glut32.lib放进

2017-05-05 16:48:34 574

原创 #1141 : 二分·归并排序之逆序对

#1141 : 二分·归并排序之逆序对时间限制:10000ms单点时限:1000ms内存限制:256MB描述在上一回、上上回以及上上上回里我们知道Nettle在玩《艦これ》。经过了一番苦战之后,Nettle又获得了的很多很多的船。这一天Nettle在检查自己的舰队列表:我们可以看到,船默认排序是以等级为参数。但实际上一个船的火

2017-05-04 17:40:38 377

原创 #1139 : 二分·二分答案

思路:用步数做距离,索敌值作为判断标准bfs#include #include #include #include #include #include #include using namespace std;const int maxn=10050;int n,m,k,t;vector >vec[maxn];int dis[maxn];bool bfs(

2017-05-04 16:29:48 306

原创 #1128 : 二分·二分查找&&#1133 : 二分·二分查找之k小数

数组长度为N,保证没有重复的数。一个简单有效的方法是对数组进行排序后使用有序数组的二分查找,时间复杂度为O(NlogN)。观察我们第一个算法,对于选定的Mid。如果数组满足a[L..Mid-1]既然如此,那么我们可以通过一次遍历交换将比a[Mid]小的数放到a[Mid]左边,比a[Mid]大的数放到a[Mid]右边。(这里使用了快速排序的思想)其他部分仍然同有序数组的二分查找相

2017-05-04 15:21:38 1232

原创 山东第六届省赛Circle of Friends(强联通缩点最短路)

题意:朋友圈,如果彼此都认为对方是朋友帮忙就无花费,否则花费为1,如果是一个环也认为彼此是朋友。思路:强联通分量缩点,重新造边,跑最短路。#include #include #include #include #include #include using namespace std;const int MAXN =100000 ;const int MA

2017-05-03 23:28:34 347

原创 HDU5971 Wrestling Match(二分图染色)

题意: 给出比赛的人的标号, 以及x个好人y个坏人。询问是否能判断他是一个好人或者坏人。 给出的关系是否不存在矛盾,并且没有既是好人又是坏人。思路:训练的时候这题理解错了,一直没过。 补题发现可以是多个连通块,就是说可以分为m堆,只要每个堆里不存在矛盾关系,且每个人都出现过就可以。#include #include #include using namespace std

2017-05-02 11:38:25 593

原创 Square Number-3258拆平方

题意:询问给定的数字 有多少对两两相乘是一个平方数。思路:n=x*x*ym=z*z*yn*m =x*x *z*z *y *y因此只要是一次方相乘的数字相同就是一对。  例如 32= 2*2 *  2*2 *   2      8= 2*2  *2 相乘就是一组满足条件的解。之后从抽象出来的数组中求组合Ca[i]  2#include #include #

2017-05-01 20:09:45 454

空空如也

空空如也

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

TA关注的人

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