2018暑假
文章平均质量分 58
姬小野
这个作者很懒,什么都没留下…
展开
-
CCF 201312-4 有趣的数_数位DP
CCF 201312-4 有趣的数 传送门这道题似乎就是所谓数位DP, 如果没有接触过这一类题目, 真的是很难会想出完整的方法, 毕竟有6个状态, 然后在状态之间进行递推.我们定义六种状态, s0-s5, 对每个长度的状态我们都从其他可能推过来的状态推过来.为什么是六种? 这六种状态是哪六种?这些状态分为四大类:分别有1,2,3,4个数字的情况.只有一个数字的状态:s0:只...原创 2018-08-14 00:22:25 · 231 阅读 · 0 评论 -
CCF 201509-3 模板生成系统
CCF 201509-3 模板生成系统 传送门一道还算简单的模板题, 不过最开始写的版本居然超时了?!!! 只得了90分. 然后做了一个优化, 还是超时, 又做了一个优化(其实是填坑), 终于不超时了. 但是我发现其实那个超时不是程序太慢的原因, 而是题目的一个坑! 专门用来卡我的这种做法的! 我的做法是对每一行, 查询满足{{ name }}格式的字符串, 然后用已知的键值对来替换掉...原创 2018-08-10 18:39:24 · 319 阅读 · 0 评论 -
CCF201709-5 除法_树状数组
201709-5 除法 传送门这是一道描述相比于其他第五题来说比较简单的题目, 那么, 这道题真的简单吗?答案是: 是的, 或者说想出正确解法不难.了解这道题后会发现, 这不就是一道树状数组的题目么? 区间数的和, 某个数的更新, 很典型的树状数组. 确实是这样, 不过此题有几个坑.首先是暴力解法, 按照题目的描述一步一步来即可, 当然的高分是不可能的, 只有30分. 不过这也启发...原创 2018-08-06 16:41:57 · 335 阅读 · 1 评论 -
CCF 201512-5 矩阵_50分_矩阵快速幂
CCF 201512-5 矩阵 传送门这道题看上去好像可以用变形的矩阵快速幂求解, 但是最大数据范围m = 1000,n = 100,k ≤ 1e9, 常规的算法复杂度*O(m^3*n*logk)*肯定是不可以了, 高达1e12级数. 但是较小的数据还是可以过掉的.我得了50分, 过掉了较小的数据, 在百度上没有找到有谁发出100分的代码, 自己也暂时想不出正解.这里的变形, 是矩阵...原创 2018-08-10 13:19:29 · 503 阅读 · 0 评论 -
CCF201709-4通信网络_双向DFS
这题一看, 如果不考虑时间的话, 用floyd算法求传递闭包和对称闭包是可以解决的, 但是题目的数据只够过60分, 正解显然不是这样.然后我又思考, 开始往复杂了想, 于是有了下面的不知对错的思路: 先判断图是否连通,否则结果为0 用tarjan算法缩点, 把环全都合成一个结点,他们的处境是一样的 找到一个入度为0的结点,(缩点之后一定存在), 它会指向好几个点, 找出...原创 2018-08-06 09:39:00 · 732 阅读 · 0 评论 -
如何用爬虫爬去一张图片
这次是一只简单的爬虫, 代码只有五行, 目的是爬去一张网页上的图片先展示代码吧import urllib.requestr = urllib.request.urlopen('http://image.samanlehua.com/mh/25933.jpg')r = r.read()with open('picture.jpg', 'wb') as f: f.write(r...原创 2018-08-01 15:54:56 · 5745 阅读 · 2 评论 -
MySQL Wordbench汉化_百度网盘
如何汉化MySQL? 网上已经由很多教程了, 为什么我还要发一遍? 我傻吗?我不傻! 因为我找了好久, 发现大多数xml资源都是在csdn下载里面的, 而我又没有vip也没有c币, 根本下载不到! 找了好久之后终于找到一份了, 本着助人为乐的思想, 我决定我要把这个汉化文件发出来!!!其实方法就是修改main_menu.xml文件, 默认目录为C:\Program Files\My...原创 2018-08-01 13:41:36 · 14116 阅读 · 19 评论 -
2017-12CCF认证_1,2题
一. 试题编号: 201712-1 试题名称: 最小差值 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定n个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值。 输入格式 输入第一行包含一个整数n。 第二行包含n个正整数,相邻整数之间使用一个空格分隔。 输出格...原创 2018-07-28 13:36:36 · 1168 阅读 · 0 评论 -
最短路计数_SPFA
P1144 最短路计数 传送门题目描述给出一个 NN 个顶点 MM 条边的无向无权图,顶点编号为 1-N1−N 。问从顶点 11 开始,到其他每个点的最短路有几条。输入输出格式输入格式: 第一行包含 22 个正整数 N,MN,M ,为图的顶点数与边数。接下来 MM 行,每行 22 个正整数 x,yx,y ,表示有一条顶点 xx 连向顶点 yy 的边,请注意可能有自环与重边。...原创 2018-07-28 13:30:10 · 485 阅读 · 1 评论 -
无线通讯网_去边最小生成树
P1991 无线通讯网 传送门题目描述国防部计划用无线网络连接若干个边防哨所。2 种不同的通讯技术用来搭建无线网络;每个边防哨所都要配备无线电收发器;有一些哨所还可以增配卫星电话。 任意两个配备了一条卫星电话线路的哨所(两边都ᤕ有卫星电话)均可以通话,无论他们相距多远。而只通过无线电收发器通话的哨所之间的距离不能超过 D,这是受收发器 的功率限制。收发器的功率越高,通话距离 D ...原创 2018-07-28 12:27:41 · 305 阅读 · 0 评论 -
CCF 201712-04 行车路线_Dijkstra变形
201712-04行车路线 传送门这看似是一个很复杂的问题, 实际上, 额…首先它有基础的最短路问题的影子,题目有20%的数据是没有小道的,可用Dijkstra算法直接求那么本着那更多的部分分的战略, 我们先写基础程序(先假设全部都是大道) OK, 初稿裸的dijkstra是20分, 那么考试的时候这20分也比较稳了, 距离满分也只有80分罢了… 罢了… 罢了…查看数据描述:...原创 2018-08-05 21:42:31 · 2265 阅读 · 7 评论 -
CCF 201512-4 送货
CCF 201512-4 送货 传送门此题只得了80分, 说是运行错误, 找了好久的bug, 都找不出哪里出错. 然后找了其他博客代码, 提交了三四个, 都是80分(他们博客上说是100分代码). 然后我想, 这应该是CCF的问题吧.这道题就是求欧拉路径.注意几点:1.一定要判断是否是连通图, 不然是错的.(判断输出点数是否为m + 1即可) 2.bool类型可以开boo[1...原创 2018-08-09 20:22:40 · 538 阅读 · 2 评论 -
倒水-二进制-lowbit函数
P1582 倒水, 传送门题目描述一天,CC买了N个容量可以认为是无限大的瓶子,开始时每个瓶子里有1升水。接着~~CC发现瓶子实在太多了,于是他决定保留不超过K个瓶子。每次他选择两个当前含水量相同的瓶子,把一个瓶子的水全部倒进另一个里,然后把空瓶丢弃。(不能丢弃有水的瓶子)显然在某些情况下CC无法达到目标,比如N=3,K=1。此时CC会重新买一些新的瓶子(新瓶子容量无限,开始时有1升水...原创 2018-07-28 09:14:15 · 285 阅读 · 0 评论 -
P1346 电车_建图的艺术_最短路
P1346 电车 传送门 题目描述 在一个神奇的小镇上有着一个特别的电车网络,它由一些路口和轨道组成,每个路口都连接着若干个轨道,每个轨道都通向一个路口(不排除有的观光轨道转一圈后返回路口的可能)。在每个路口,都有一个开关决定着出去的轨道,每个开关都有一个默认的状态,每辆电车行驶到路口之后,只能从开关所指向的轨道出去,如果电车司机想走另一个轨道,他就必须下车切换开关的状态。 ...原创 2018-07-28 00:14:52 · 184 阅读 · 0 评论 -
单词接龙_dfs
P1019 单词接龙题目描述单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如 beastbeast 和 astonishastonish ,如果接成一条龙则变为 beastonishbeastonish ,另外相邻的两部分不能存在...原创 2018-07-31 23:10:37 · 268 阅读 · 0 评论 -
CCF 201509-4 高速公路_Tarjan算法
CCF 201509-4 高速公路 传送门这道题基本算是裸的Tarjan算法了, 只要求出每个强连通分量, 然后根据这些分量的元素数计算便利城市对即可, 数据也没有优化的坑. 会Tarjan算法的人大概会在考场上大呼简单, 但不会的人恐怕只有0分了, 说明CCF认证还是需要一定量的算法知识的.第一稿只得了80分. 找了很多博客对比, 期间发现他们很多人, 一个简单的Tarjan算法写的那么...原创 2018-08-10 21:19:05 · 295 阅读 · 3 评论 -
浏览器屏蔽百度热搜
引言火狐浏览器解决方案已安装安装方式1. 在浏览器右上角菜单处, 找到附加组件2. 搜索Adblock Hyper并安装屏蔽方式1. 首先, 点击广告插件, 点击Block Element2. 移动到百度热搜那一栏, 点击3. 会弹出这样一个页面, 选择创建就好了4. 屏蔽成功Chrome浏览器解决方案安装插件方式推荐插件后记引...原创 2018-08-14 13:20:41 · 8227 阅读 · 2 评论 -
CCF 201403-3 命令行选项
CCF 201403-3 命令行选项 传送门一道比较复杂度模拟题, 提交上去突然看到100分有点小惊喜. 之前上一版改了好多次都只有10分20分, 然后重写一版, 结果一次过了.总结一下需要注意的点存选项时带着-一起存, 这样后面查找选项时可以直接用map的count方法, 而不需要拆开-, 而导致没有考虑到特殊情况, 比如选项可能有-ab, 而你略过了-, 读取到它的选项是a, 这...原创 2018-08-14 00:10:52 · 861 阅读 · 0 评论 -
Tarjan算法缩点+DAG最长路(DP)
第一个问题: Tarjan算法找出一个图里面的全部强连通分量(包括单独的点).第二个问题: 对每个强连通分量进行缩点, 使得此图变成一张DAG.第三个问题: 如何快速获得新图各个结点的入度出度.第四个问题: 缩点之后求解DAG最长路我们按照复杂程度来讨论不同的Tarjan算法变形的差异.第一个问题: Tarjan算法找出一个图里面的全部强连通分量(包括单独的点)....原创 2018-08-13 18:20:49 · 1509 阅读 · 0 评论 -
CCF 201609-3 炉石传说
201609-3 炉石传说 传送门纯粹的模拟题, 按照规则一步步来模拟即可, 然而辣鸡的我之得了90分, 找了好久没有找出那10分的bug.要注意的一点是: 操作数可能为0还是贴一贴90分的辣鸡代码, 毕竟是一个一个敲出来的#include <algorithm>#include <iostream>#include <vector>usi...原创 2018-08-08 21:55:56 · 252 阅读 · 0 评论 -
洛谷P3150 pb的游戏(1)_博弈论入门
题目背景(原创)有一天 pb和zs玩游戏 你需要帮zs求出每局的胜败情况题目描述游戏规则是这样的: 每次一个人可以对给出的数进行分割,将其割成两个非零自然数,之后由另一个人选择留下两个数中的其中一个;之后由另一个人进行分割这个剩下的数,重复步骤……当一个人无法对数进行分割的时候游戏结束,另一个人获胜现在要你求出N次游戏的胜败每局由pb先进行分割,如果pb赢输出"pb wins" 如...原创 2018-08-15 22:01:00 · 684 阅读 · 0 评论 -
CCF 201409-4 最优配餐
CCF 201409-4 最优配餐 传送门这道题很水, 不过刚开始超时了. 有一个收获: 对一张图里分散的点进行BFS时, 不必每次都将其作为源点, 进行BFS. 而可以全部压入队列中, 进行BFS. #include <algorithm>#include <iostream>#include <cstring>#include <vect...原创 2018-08-13 10:49:08 · 454 阅读 · 0 评论 -
CCF 201412-3 集合竞价
CCF 201412-3 集合竞价 传送门只得了80分, 饮食找不出bug在哪里.思路是: 1. 对命令进行处理, 改取消的取消, 可以stringstream方便读取字符串中的string double int. 2. 将两种命令(sell和buy)分别按价格排序. 3. 同时向右查询, 以buy为循环外围, 对每个可更新答案的情况进行更新. 答案一定是buy的某个价格, 对每...原创 2018-08-12 13:18:45 · 363 阅读 · 2 评论 -
CCF 201412-4 最优灌溉_Kruskal
CCF 201412-4 最优灌溉 传送门以前的CCF第四题居然这么水, 出了一道裸的最小生成树. 写了6分钟就100分了. 光看题目, 最优灌溉, 还以为是网络流问题.辣鸡代码, 不值一看#include &lt;algorithm&gt;#include &lt;iostream&gt;#include &lt;vector&gt;using namespace std;...原创 2018-08-12 12:26:11 · 310 阅读 · 0 评论 -
CCF 201612-4 压缩编码_石子合并问题_DP
201612-4 压缩编码 传送门想了很久, 还是没有独立做出来. 虽然从问题中抽象出来了是一个什么样的问题. 下面是自己想的思路如果这棵树一定要保持叶子节点字典序递增的话,前序遍历的顺序就是字典序. 那么一个结点(按顺序输入的),只能和相邻的结点合并. 合并n - 1次之后, 结果就是一棵维持字典序递增的树的长度. 但是这种合并有很多种情况,答案就是所有情况里面结果最小的...原创 2018-08-07 19:25:20 · 827 阅读 · 0 评论 -
201612-3 权限查询 模拟
传送门CCF第三题, 同样是一道非常复杂度模拟题, 要非常细心不要漏掉哪一点.可惜我只得了90分, 没得满分, 找不出那10分是错在哪里了.贴下90分代码#include <algorithm>#include <iostream>#include <vector>#include <map>using namespace s...原创 2018-08-07 19:08:35 · 245 阅读 · 2 评论 -
CCF 201503-5 最小花费
CCF 201503-5 最小花费 传送门毕竟是个蒟蒻, 所以这CCF-CSP第五题也只能用用O(nm)的算法暴力去解了, 而且常数还TM很大. 得了30分, 也算是出题人放了个小水.用DFS找到两端点的路径, 同时存储边的长度. O(n)对每一条路径点判断物价大小,维持当前最小的物价,购买尽可能多的粮食直到可以走到更小的物价处注意用long long, 不然你只能得个10分咧...原创 2018-08-11 16:17:32 · 1090 阅读 · 0 评论 -
CCF 201503-4 网络延时_两种方法
CCF 201503-4 网络延时 传送门初看题: 这不就是多源最短路径里长度最大的? floyd? 不过看数据,这样只能过70%的数据,正解肯定不是这样. 写了份floyd交上去, 70分. 这说明出题人特别仁慈, 给了这么多放水的数据, 可是这样是不是太不公平?但是什么是正解呢? 1 ≤ n ≤ 10000,1 ≤ m ≤ 10000, 这么大个数据,肯定得从题目的特殊性下手思考...原创 2018-08-11 14:03:47 · 940 阅读 · 1 评论 -
Python爬虫爬取猫眼电影排行
本博客介绍使用爬虫爬取猫眼电影最受期待榜单先看main函数代码, 这个函数用来获取一个页面上的榜单信息, 我们大致了解一下爬虫程序的框架def main(offset): url = 'http://maoyan.com/board/6?offset=' + str(offset) html = getHtml(url) info = getRank(html) ...原创 2018-08-02 11:25:04 · 1417 阅读 · 0 评论 -
CCF 201703-4 地铁修建_最小生成树
自己独立思考出这道题, 而且正解思路是一遍过, so 嗨皮.贴一下思路历程, 思考的过程是很珍贵的. 对一个问题, 从陌生到有一个大致的了解, 其中会有错误的思路, 发现错误然后及时回头去想其他的方法. 有时有能做出结果的思路但不是最好的思路, 从差方法上进行横向拓展, 突然灵机一动, 想到另一种方法, 最后解答出来.以下初印象: 这像是一道DAG最长路或者说关键路径题目,但是又很...原创 2018-08-06 23:38:04 · 303 阅读 · 0 评论 -
CCF 201703-3 Markdown
这是我做过的最简单的第三题, 一遍就过了. 按照题目要求的进行字符串转换即可.要是今年九月份的CCF认证有这么简单就好了.既然分了区块和行内两种层次, 那么首先应该划分区块,然后对区块的内容分别处理先进行区块划分 输入文本里的空行应该是”“, 空字符, 也没有换行表示什么的. 用一个函数分别对每个区块进行解析 处理段落处理标题, 注意字符串拼接, 还是一个一个接比较好. ...原创 2018-08-06 21:27:18 · 275 阅读 · 0 评论 -
CCF 201512-3 画图_BFS
CCF 201512-3 画图 传送门模拟, 还带了个BFS, 比较简单. 但是第一次提交只得了90分. 因为在判断交点的时候, 考虑了 -遇到| 和 |遇到- 的情况却没考虑|和-遇到+的情况, 真是蠢哉, 蠢哉.#include <algorithm>#include <iostream>#include <vector>#include &l...原创 2018-08-09 16:55:11 · 289 阅读 · 0 评论 -
P1525 关押罪犯_并查集
P1525 关押罪犯 传送门这道题是用并查集来写的, 但普通的并查集是做不出的. 所以需要用到一些巧妙地思维.首先给边排序, 权值更大的在前面. 用贪心的思想(类似Kruskal算法)遍历边, 直到某一条边的两个顶点必须在同一个集合里面(一共只有两个集合).这题的难点就是如何判断两个顶点一定在同一个集合. 所谓敌人的敌人就是朋友, 也就是说对于一个点, 如果它此前没有敌人, 那么遇到的...原创 2018-08-05 11:29:23 · 220 阅读 · 0 评论 -
二叉查找树
什么是二叉查找树?如何建立一棵二叉树?首先, 定义结构体作为树的结点的存储方式.获取数据构建二叉查找树插入函数中序遍历二叉树删除操作前驱与后继如何求得前驱和后继findMax()函数findMin()函数删除的逻辑理解完整代码什么是二叉查找树?二叉查找树是一种特殊的二叉树, 又称为排序二叉树, 二叉搜索树, 二叉排序树.递归定义如...原创 2018-07-13 23:31:48 · 195 阅读 · 0 评论 -
前序+中序重建二叉树
如何构建一棵二叉树?代码只有自己真正写的时候才会发现很多漏洞. 因为当我写好代码, 以为一切万事大吉的时候, 发现一切根本不是那么回事! 所有的一切都崩塌了!输入一组数据就可以构建二叉树? too young too simple ! 不过我还是那样干了, 按照书上说的插入方法, 每次传递一个数就在二叉树中插入一个数, 就这样构建起了一棵经不起考验的二叉树. 按照插入的规则找到第一个N...原创 2018-07-13 16:43:55 · 355 阅读 · 1 评论 -
kmp算法
前言1. next数组的求解2.最基本kmp算法的实现3.计算匹配的次数4.next数组的优化, 实现更快速的匹配前言kmp算法全名叫做Knuth-Morris-Pratt算法, 是一种字符串匹配算法.给出两个字符串序列text和pattern.有以下循序渐进的四个问题1. 对next数组的理解 2. 判断pattern串是否是text的子串 3. ...原创 2018-07-13 12:52:10 · 192 阅读 · 0 评论 -
求pi 以及 pi小数点后n位
这时IOCCC大赛上的得奖代码, 求pi, 可以精确到第56000位. 膜拜大神.#include &lt;stdio.h&gt;#define MAX_C 56000int a=10000,b,c=MAX_C,d,e,f[MAX_C+1],g;main(){for(;b-c;) f[b++]=a/5;for(;d=0,g=c*2;c -=14,printf("%.4d",e+d/a...原创 2018-07-18 22:29:17 · 3178 阅读 · 0 评论 -
大整数除法
这个大整数除法指的是求出 a 除以 b 的整数位结果, 当然余数也可以求, 但不是求精确的小数结果.举个例子来说思路:a = 17693 b = 23 求 a / blen(a) = 5, len(b) = 2那么 1. 17693 - 23000 &lt; 0, 跳过 2. 17693 - 2300*7 = 1593 3. 1593 - 230*6 = 213 4...原创 2018-07-18 21:51:59 · 10172 阅读 · 5 评论 -
CCF-201403-4 无线网络
试题编号: 201403-4 试题名称: 无线网络 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 目前在一个很大的平面房间里有 n 个无线路由器,每个无线路由器都固定在某个点上。任何两个无线路由器只要距离不超过 r 就能互相建立网络连接。 除此以外,另有 m 个可以摆放无线路由器的位置。你可以在这些位置中...原创 2018-07-18 15:53:51 · 424 阅读 · 1 评论 -
DP_DAG最长路径_关键路径
DAG最长路DAG最长路径以i为终点的最长路径DAG最长路DAG指的是有向无环图, 求它的最长路径有一种DP方法.我们建立一个数组dp[n+1], dp[i]代表从这个结点出发的最长路径, 那么要求出dp[i], 我们只要求出从i出发的下一结点的dp[j], 使得dp[i] = max(dp[i], dp[j] + G[i][j]), 这就是它的状态转移方程....原创 2018-07-12 09:53:45 · 3647 阅读 · 0 评论