rainyroad

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2018年12月18日

摘要: 恢复内容开始 离自己进入acm已经快5个月,这半年来,也遇到了很多挫折,首先是起初的两个月,不懂得学习的方法。遇到一道题不会,就会死磕,或者是遇到一个新的算法无法理解,也会一直死磕。却没有向别人请教。这是一种非常低效的状态吧。但是后面有一段时间,又反其道而行之了,只想追求在最短的时间里学到更多的东西 阅读全文
posted @ 2018-12-18 02:47 rainyroad 阅读(107) 评论(0) 推荐(0) 编辑

2018年12月6日

摘要: 被一道cf水题卡了半天的时间,主要原因时自己不熟悉c++stl库的函数,本来一个可以用库解决的问题,我用c语言模拟了那个函数半天,结果还超时了。 题意大概就是,给定n个数,查询k次,每次查询过后,输出最小的一个不为零的数x,同时这给定的n个数都要减去x。其实当一个数被输出后就可被丢弃了,因为它变成了 阅读全文
posted @ 2018-12-06 17:00 rainyroad 阅读(176) 评论(0) 推荐(0) 编辑

2018年12月2日

摘要: lowbit(n)意思即为找出n在二进制表示下最后一位1即其后面的0所组成的数值,别的东西算法书上有,这里提出一个重要的公式 lowbit(n)=n&(~n+1)=n&(-n),这个有什么用啦,如果你知道了lowbit(n),那么你把n-lowbit(n)赋给n,在lowbit(n)就可以知道n二进 阅读全文
posted @ 2018-12-02 15:15 rainyroad 阅读(436) 评论(0) 推荐(0) 编辑

2018年11月30日

摘要: 自从昨天打了cf之后,自己的代码虽然思想正确,但是bug很多,而且很难找出错误点。现在我说明一下原因:1.代码风格太差,很多重复的操作没有写成函数2.if 语句里又嵌套if else语句。嵌套太多,其实有一个很好的避免方法就是,如果,代码里所有的选择分支到最后都反应在结果的不同,则只需要对结果值进行 阅读全文
posted @ 2018-11-30 01:32 rainyroad 阅读(139) 评论(0) 推荐(0) 编辑

2018年11月27日

摘要: 这次区域赛感慨颇多吧!热身赛,和正式赛,除了帮助理解题目外,参与到题目讨论中的次数很少。还有自己理解题目的速度很慢,一道题需要想很久。这两个缺点纠其原因,我想了想,是这几个月当中太注重固定的算法思维的理解而忽视了做题。每一次做题也是为了理解某一个特定算法的思维,并且大部分题目都是中文的,已经给出了题 阅读全文
posted @ 2018-11-27 00:36 rainyroad 阅读(166) 评论(0) 推荐(0) 编辑

2018年11月23日

摘要: 什么,这周天就要去参加acm焦作赛,简直不敢相信。从大一暑假七月份中旬到今天十一月23日,加入acm将近四个多月的时间,如今到了检验自己的时候了。aaaaaaaaaa。乌拉,必胜。打印个模板,在跑个步,洗个澡,溜了,溜了。 阅读全文
posted @ 2018-11-23 18:21 rainyroad 阅读(891) 评论(0) 推荐(0) 编辑

摘要: //0/1分数规划问题 //问题:给定a1,a2,a3,...,an;b1,b2,b3,...,bn。n对整数,从中选出若干对,使得 //a1+。。。+an的和与b1+。。。+bn的和,两者的商最大。 //解决方法:设商为L,则sum(a)/sum(b)=L。当sum(a)—L*sum(b)>0时 //则等价于:sum(a)/sum(b)>L,即L的值取小了。 //当sum(a)—L*sum(b... 阅读全文
posted @ 2018-11-23 18:17 rainyroad 阅读(226) 评论(0) 推荐(0) 编辑

摘要: //最小生成树,Kruskal算法 struct rec { int x; int y; int z; }edge[50010]; int fa[10010],n,m,ans; bool operator >n>>m; for(int i=1;i>T; while(T--) { cin>>n; for(int i=... 阅读全文
posted @ 2018-11-23 17:30 rainyroad 阅读(1778) 评论(0) 推荐(0) 编辑

2018年11月22日

摘要: 今天做了一个错误的决定,学习新的知识,明天把生成树的东西总结一下//深度优先遍历框架 vector G[maxn]; int vis[maxn]; void dfs(int u) { vis[u]=1; PREVISIT(u);//访问节点u之前的操作 for(int i=0;i<G[u].size();i++) { int v=G[u][i];... 阅读全文
posted @ 2018-11-22 22:37 rainyroad 阅读(762) 评论(0) 推荐(0) 编辑

2018年11月21日

摘要: 动态规划有一个很重要的特点:无后效性,意思是当前状态的决策不受过去决策的影响。所以当状态很多时,我们不必去保存所有的状态,这样很占用内存,我们只需保存与当前决策有关的状态即可。 下面以斐波那契数列为例。求f[100]时,我们通常时利用是开一个100的数组空间。可是f[100]=f[99]+f[98] 阅读全文
posted @ 2018-11-21 14:29 rainyroad 阅读(1085) 评论(0) 推荐(0) 编辑