ACM
好奇的程序媛
互联网的精神是自由、开放、合作、共享的精神,我的兴趣是回答问题
展开
-
NYOJ 488 素数环
题目链接 果然程序是需要自己打一遍的,虽然之前也已经提交过素数环的代码,但是不经过自己思考的代码自己还是打不出来。这也算是自己真正意义上的一次深搜代码吧,往往是思路清晰,却写不出代码。。 通过这个题目,我觉得写伪代码来理清思路也是很好用的一种方法。。 同时针对这个题目,n为奇数时是没有答案的,n为偶数时一定有符合条件的排列(我还没搞清楚为什么),当n=1时答案为1,还有一点就是深搜代码能够自动原创 2016-08-27 23:58:57 · 421 阅读 · 0 评论 -
NYOJ 108 士兵杀敌(一)
题目链接 最基础的树状数组的题目,之前有写过,但是没几天就抛到了九霄云外,再写的时候就在网上找的模板,还简单看了一下输入的部分,才把模板套上,,看来模板也很重要啊,,因为自己理解了却还是写不出来,,即使写出来了,,也太容易就忘记了,,上代码,,用于以后参考吧。。不过这是最简单的树状数组一维模板,以后做到题再加以补充。。 借鉴模板链接#include<iostream>#include<stri原创 2016-08-30 17:46:10 · 314 阅读 · 0 评论 -
NYOJ 116 士兵杀敌(二)
题目链接 感觉跟士兵杀敌(一)就没有区别嘛,,不明白为嘛一个难度系数为3,一个为5,,直接贴代码吧。。刚做了(一),就觉得(二)是水题了,那就水一水,凑个数吧。。#include<iostream>#include<string.h>#include<queue>#include<stdio.h>#include<stack>using namespace std;int a[1000原创 2016-08-30 18:11:44 · 241 阅读 · 0 评论 -
NYOJ 128 前缀式计算(待续)
题目链接 参考思路及代码链接 stringsteam用法原创 2016-08-30 21:06:35 · 218 阅读 · 0 评论 -
NYOJ 311 完全背包
题目链接 对于背包的各种问题,其实感觉都还没有理解到位。。感觉不太能理解为何背包问题是从前向后推,而完全背包是从后向前推,,虽然之前把序列来来回回输出了好多遍,现在貌似还不是那么清晰。。遇到这个问题百度了一下代码,竟如此简单。。好吧。。我就先借这代码记住一些背包的知识,随着对动态规划理解的深入,以后再搞个背包的专题弄明白。。 dp[i]=max(dp[i],dp[i-wi]+ci)//代表占用的原创 2016-08-30 23:50:10 · 234 阅读 · 0 评论 -
NYOJ 1233 差值
题目链接 我起初绝对没有想到决定这个程序是否TLE的关竟是 (1)是否在程序的最初声明i,j,虽然这两个变量由于数组的关系多次用到,但是重新的声明会占用过多时间吗??现在自己还不清楚,, (2)除此之外在这个题的大数处理过程中用到sort(a,a+n,cmp),我觉得对于有些自定义的排序规则自己还不是很熟悉,,感觉一些地方的写法对自己还是蛮有启发的 (1)如何做数组减法, (2)如何避免0原创 2016-08-31 23:07:11 · 379 阅读 · 0 评论 -
NYOJ 773 开方数
题目链接感慨pow函数的伟大,除此之外强调pow函数的参数为double类型,做过一道题,被坑死了,,等找到是哪个题就一起加到这里。。 代码不是我写的,,因为开始毫无思路,看了标答就不想写了,, 代码链接 附另一个链接,二分法没看,最后一句深有同感。。快速幂方法#include <iostream>#include <cstdio>#include <cmath>using names原创 2016-08-31 23:19:25 · 345 阅读 · 0 评论 -
NYOJ 114 某种序列
题目链接 看懂了代码,自己背着打了一遍,算法不是很难,但是我觉得很难想到并且写的这么工整,很赞。。至少身为菜鸟的我还差得很远。。 参考代码链接 附加理解后自己打的代码#include<stdio.h>#include<string.h>#define base 100000000int ma[100][100];int main(){ int a,b,c,jw,len,tem原创 2016-09-01 22:48:34 · 293 阅读 · 0 评论 -
NYOJ 925 国王的烦恼
并查集的一道题目,不知道为何有些博客上说成是最小生成树,也许最小生成树也可以解决这个问题,坎坎坷坷打完了代码,上交就TLE,好菜啊,不过看了看自己的方法复杂度确实够高的。 看了网上的代码,一个很好的想法:反向考虑,,路断变路修,,,同一天的算一个。。一句就解决了我的超时问题,当然对并查集也有一些改变的,,我觉得自己写不出来。。 首先附自己的代码,虽然TLE,但是很好的帮助我理解了这个题目的解法。原创 2016-09-02 20:21:40 · 385 阅读 · 0 评论 -
NYOJ 756 重建二叉树
题目链接 为什么我会觉得二叉树这么难呢?为什么我会觉得递归的程序比较难写呢?我想大概就是因为这些变量们循环来循环去的,很容易让我觉得混乱,理不清头绪,再加上都是字母表示的,有时候很容易思路就会断开,,题目一看算法很明确,,菜鸟想的都是先建树后遍历,建树肯定是递归,然而我却想不到如何去写这个递归的程序,哪些量是要递归改变的,然而我连左右递归都没想到,只觉得一筹莫展,不过自己照模板打了一遍,再来看这个原创 2016-09-03 11:07:00 · 321 阅读 · 0 评论 -
NYOJ 513 A+B Problem IV
题目链接 算是一种偷懒,虽然自己学过java,但是长久不用并且学的也不好,便因为大数问题开始又开始学起java来,为什么是偷懒呢?因为发现大数问题用java真的好方便啊,C++近百行代码解决的问题,用java十几行就解决了,但是却需要对java语言足够的熟悉,还需要继续学习。。 贴的别人的代码,链接import java.math.*;import java.util.*;public cla原创 2016-09-14 20:34:49 · 326 阅读 · 0 评论 -
POJ 3411 Paid Roads
题目链接 一道简单的深搜题目,虽然对我来说并不简单==,开始想用二维数组存储,发现存不下这么多数据,深搜也没有思路,于是乎,找到了网上一篇代码,声明了一种数据结构,使用了vector容器,其还提到点的搜索次数的设置,看懂了,但是自己还想不出来,搜索还是不过关,, 参考代码链接#include <vector>#include <iostream>#include <stdio.h>#inc原创 2016-10-15 10:38:10 · 228 阅读 · 0 评论 -
模拟考试1 BestCoder Round #2 TIANKENG’s restaurant
本以为是区间覆盖问题,如果有时间重叠的部分,就加上,虽然区间覆盖掌握的也不是很好,不知道是按照起始时间还是离开时间排序,之后会再好好复习这方面的习题起始代码#include #include #include using namespace std;struct node{ int st; int et; int num; friend bool原创 2017-09-01 15:32:01 · 265 阅读 · 0 评论 -
模拟考试1 BestCoder Round #1 项目管理
考试前水一遍BC里面最水的题目,平均一个小时一个题目= =||,看到题目后的第一个想法是用到vector,在最短路径dijstra算法里面用到的,vector+结构体,果然不出所料的超时了#include#include#include#include#includeusing namespace std;struct node{ int sum; int nex原创 2017-09-01 16:33:37 · 282 阅读 · 0 评论 -
考试模拟1 BestCoder Round #3 BestCoder Sequence
这个题目的难点,就是如何对应一个数两边的数一个大一个小,想了很久想来想去,自己也不知道怎么解决,想到边遍历边记录个数,可能要判断奇数偶数之类的,看了网上的题解,只是觉得不能再巧妙,代码很好理解,可是方法也好体会,可是这种巧妙很难运用= =!!参考其他博客#include #include #include #include using namespace std;原创 2017-09-01 17:40:02 · 208 阅读 · 0 评论 -
九度oj 专题整理 (模拟部分1)
分类参考链接 点击打开链接假期陆续刷了很多水题,觉得ACM只要能理解思路的代码都是水题,套路也是有的,不过我的水平也就停留在水题上了,随着面试日期的临近,反而今天有些不静心,就不如现在整理一下自己做过的水题吧,也免得眼高手低,现在看看自己当时写的代码,很多思路也让现在的自己吃惊。因为自己总是喜欢倒序做事,那就从每个专题的题目倒序来吧模拟类型:1000 1001 1020 10原创 2017-09-11 17:20:21 · 372 阅读 · 0 评论 -
九度oj 专题整理 (模拟部分2)
整理的过程中才发现自己并不是每个题都水过的,那就边整理边水吧= =,今天的脑子似乎也就适合做些整理的事情了= =题目1177:查找这个题目是现敲的,不过我觉得如果我的C++的字符串函数用的熟练的话,应该会简单许多= =#include #include #include #include using namespace std; int main(){ cha原创 2017-09-11 18:47:50 · 316 阅读 · 0 评论 -
九度oj 专题整理(模拟部分3)
三角形的输入输出问题,我想到了二维数组,在POJ上练习题目的过程中,发现北大对二维数组的考察也是蛮多的,感觉也很有趣,于是学习了几个题目,因为写不出代码,也只能说学习了,简单做一下整理,如果以后有机会,会完善这部分= =20:反反复复第一次遇上没做出来,心情很不好的说= =点击打开链接,以下是网上代码,因为是从我的AC代码中粘过来的,所以就不附原来的博客链接了 = =见谅#in原创 2017-09-11 19:16:30 · 310 阅读 · 0 评论 -
NYOJ 1063 生活的烦恼
题目链接 坦白讲还是弄不大懂建树的过程,对于结构体搞得不大明白。。就贴个代码作为建树和按层次遍历的模板吧,,代码是粘的网上的,自己稍加改动了一些还标明了不明白的地方, 附参考代码的链接 存留的代码#include<iostream>#include<string.h>#include<queue>#include<stack>using namespace std;string te原创 2016-08-30 17:09:00 · 499 阅读 · 0 评论 -
NYOJ 929 密码宝盒(待续)
研究了一个多小时别人的代码,搞明白了算法和代码结构,然后自己背写了一遍用了半个多小时,接下来就是漫长的找错误的时间,基本上就和源代码没有区别了,但是就是连最基本的输入都过不了,,so bad.. 附代码,以后再来看吧。。 我的代码#include<stdio.h>#include<string.h>#include<algorithm>#include<queue>using names原创 2016-08-29 20:58:15 · 1343 阅读 · 0 评论 -
NYOJ 1058 部分和问题
题目链接 题目的思路很明确,有点像背包,开始我感觉也有点像动态规划,,但是就是装和不装的问题呗,感觉更像背包,可是不会写代码,,于是参考其他的博客,,竟可以写成深搜。。还用到了栈。。啥也不说了,直接上代码吧。。借鉴的其他博客,链接#include<stdio.h>#include<iostream>#include<string.h>#include<algorithm>#include原创 2016-08-27 20:18:05 · 503 阅读 · 0 评论 -
NYOJ 915 +-字符串
看到难度为1的题目本不想水,但是我愣是对着c[j]==1的赋值代码找了半天错误,果真自己还是太水。。 题目思路:写完后看了下网上的代码,有些是有不同遇到不同则计数,而我是找加号,然后位置做差。。 然后用一个visit数组记录访问,基本都差不多。。至于是否会输出-1,我比较的是加减号的数量,然而有些代码是根据最终的visit数组来判断,,基本差不多吧 附代码#include<stdio.h>#原创 2016-08-27 16:41:58 · 593 阅读 · 0 评论 -
NYOJ 914 Yougth的最大化
题目链接 第一次遇到二分法和贪心结合的题目,算法很妙,把中间值输出理解了一下,大概是保证有解的情况下,通过二分法使单位重量的价值最大,还运用了一个结论,就是多个物品单位重量的价值一定小于单位重量价值最大的物品,我想这也许可以算一个模板题了吧,,有的写法只能先记住了。 代码出自别人,结论证明思路及代码 如下代码链接 感觉这个代码更容易理解一些#include<stdio.h>#includ原创 2016-08-27 15:39:04 · 697 阅读 · 0 评论 -
NYOJ 448 寻找最大数
题目链接对于题意开始没理解正确,以为只要不分顺序留下前n-k个数就可以了,但是这样并不能保证是最大的数。要尽量保证大的数在高位,,对于网上提供的思路可以最大限度地使大的数在高位,同时也能保证留下n-k个数。。算法很好,,只是我没想到,,附思路和代码链接原创 2016-08-27 14:08:03 · 419 阅读 · 0 评论 -
NYOJ 47 过河问题
题目链接 感觉更像是递推,开始题意都没理解正确,后来看了题解才明白题意,然后又看了解题思路,算是明白题解的意思了,然而自己也还是不能太明白是如何想到这个方法的,总之面对递推之类的就容易挂掉,可以从少开始思考,也可以从多开始思考。。总之以后还有多加练习,附解题思路和代码的链接 解题思路及代码原创 2016-08-27 09:55:30 · 351 阅读 · 0 评论 -
NYOJ 891 找点
题目链接 基于贪心算法的几类区间覆盖问题 属于第三类问题,将右端点按照升序排列,左端点降序排列,从而获得长度最短的线段,只要保证后面的线段的起点小于每次第一次扫描的线段的右端点,就可以保证有交点,扫描几次就是有几个符合条件的点了。。 附代码#include<stdio.h>#include<math.h>#include<iostream>#include<algorithm>#in原创 2016-08-26 21:30:34 · 440 阅读 · 0 评论 -
NYOJ 236 心急的C小加
题目链接 在想这到贪心题时,肯定会先想到排序,首先根据长度,其次是质量,然而这种排序方式得到的序列并不完全符合条件,后来想到根据先根据长度排序,然后根据长度和质量之和,,这样也是不行的。。再想到将中间不能符合长度和质量大于前者的先不进行访问,,然而这种思路却没想到写代码的方法,便又作罢。。还想到修改数列,然而想到可能连续几个元素都不符合条件,也是行不通的。。百度了下思路,代码也简单,只要加一个vi原创 2016-08-26 19:38:34 · 417 阅读 · 0 评论 -
NYOJ 71 独木舟上的旅行
题目链接 简单的贪心算法,虽然我仍没体会到贪心体现在哪里,“一条独木舟最多只能乘坐两个人”,开始没注意这个条件,心想着背包问题,找不出思路。于是借鉴的网上的思路自己写的代码。 题目思路: 先把各个人的体重排序,然后计算最重的人和最轻的人能否同乘一条舟,如果不能,则最重的人就要单独乘坐一条舟,再求最轻的和第二重的人的和,依次比较。#include <iostream>#include <cstd原创 2016-08-26 17:20:37 · 449 阅读 · 0 评论 -
NYOJ 1170 最大的数(待续)
题目链接 小鲍提供的算法,我写的代码,体会不出贪心的算法,找不出代码WA的原因,在此附上自己的代码和网上的代码,待日后解决。。 我的代码#include<stdio.h>#include<math.h>int main(){ int n,ans; int a[10010]; while(scanf("%d",&n)!=EOF) { ans=1原创 2016-08-25 21:30:30 · 336 阅读 · 0 评论 -
NYOJ 199 无线网络覆盖
题目链接 挺简单的一道题目,注意审题的话“注意:为了防止某种干扰,两台无线路由之间的最小距离不能小于1米”,这是一个需要注意的条件,在写这个题目时,我的一个小小的顾虑就是小数部分的进位不是遵循四舍五入,所以我想到的方法就是将double类型的除数和int类型的除数作比较,只要前者大就进一,尽管两者不是相同的数据类型,然而通过代码证明这样的比较是行得通的。 附代码(比较low,正在努力中)#inc原创 2016-08-25 20:08:38 · 292 阅读 · 0 评论 -
NYOJ 125 盗梦空间
这道题比我想象的要简单很多,我想它之所以不用栈和如此简单的原因,大概是没有要求顺序的输出吧。。原题链接#include<stdio.h>#include<math.h>int main(){ char str[10]; int t,n,ans,m,mod; scanf("%d",&t); while(t--) { ans=0;原创 2016-08-25 19:43:25 · 376 阅读 · 0 评论 -
NYOJ 975 关于521
题目分析,也许会有人像我一样想不到这个题只是一道字符串处理的题目,其间涉及到了一些字符串函数的运用,以及打表法的使用,代码是借鉴别人的,并稍作了些改动,附代码和一些知识补充。#include <cstdio>#include <cstring>#define MAX 1000000 + 2int anger[MAX], anger2[MAX];char str[10];int strCmp()原创 2016-08-25 18:18:27 · 273 阅读 · 0 评论 -
NYOJ 142 管道问题
一目了然地计算几何题目,但是实现过程涉及到判断线段是否相交及交点的求取,感觉网上这个题目的解析并不多,自己的计算几何还未入门,交点的求取的算法和代码都还不太了解,除此之外,针对这个题目提出的“取任意两个折点组成一条线,看看能不能跟所有的管道的上下折点构成的线段相交,如果所有都相交则说明光线能通过,否则求出所有光线中照的最远的那个”,怎么可以是任选呢???仍存有疑问。转载 2016-08-24 19:41:14 · 342 阅读 · 0 评论 -
判断三角形的三个端点是顺时针给出的还是逆时针给出的
感觉遵循电流的安培定则设三点依次为A,B,C,则沿向量AB方向,大拇指指向向量AB方向,四指穿出的一面为正向,反之则为负向,符合AB和AC向量叉积的正负。大于0为正向,三点为逆时针顺序给出;反向小于0,为顺时针给出。感觉数学和物理的一些方法还是相互借鉴的。正如叉积与右手定则。原创 2016-08-23 18:27:38 · 2046 阅读 · 0 评论 -
NYOJ 999 师傅又被妖怪抓走了(待续)
题目链接 觉得自己现在的水平还是写不出这个程序的,网上说是预处理+双光搜+状态压缩,开始的时候我竟觉得是深搜,写着写着不对劲才发觉,当然预处理和双广搜和状态压缩都是第一次遇到,我还是先放一放,日后再来看这个题目吧。。 题解链接原创 2016-08-28 10:39:04 · 568 阅读 · 0 评论 -
NYOJ 325 zb的生日
开始想到的01背包,然后就超时了#include<stdio.h>#include<math.h>#include<iostream>#include<algorithm>#include<string.h>using namespace std;int main(){ int n,sum,total; int p[25],dp[100000]; while(原创 2016-08-28 14:24:25 · 546 阅读 · 0 评论 -
括号配对问题
感觉在编程过程中,对栈的使用比较不熟悉,NYOJ 2括号配对问题也算是小练之一,但是提交的代码却遇到了runtime error的问题,难道是溢出栈的情况了吗?另外刚开始还是不能使程序输出正确结果,在此贴上自己的代码及参考代码,尽管很像,但是他的却是AC,待日后解决。自己的。。#include#include#include#include#includeusing n原创 2016-08-24 18:47:17 · 362 阅读 · 0 评论 -
九度oj 专题整理(模拟部分4)
1070请参见模拟1部分题目1068:球的半径和体积double类型表示的范围比float和long long大,所以我多用double,注意PI定义#include #include #include #include #include #include #define PI acos(-1)using namespace std; int main(){原创 2017-09-11 20:27:59 · 308 阅读 · 0 评论