- 博客(36)
- 收藏
- 关注
原创 PAT L2-024 部落(25 分)(并查集+路径压缩)
这个题本来以为完全模仿就可以过了,但是没想到有点卡了路径压缩问题路径压缩非递归实现:先找到根节点,之后原来路径上的每一个点 都要指向根节点读了一些攻略还是没有完全理解路径压缩,但是路径压缩与之前的是完全的等价的int get_root(int a){ if(par[a]!=a) { par[a] = get_root(par[a]); } return par[a];...
2018-07-30 14:53:51 436
原创 百练 红与黑(DFS)
遇到过很多这种题了,统计一个位置的联通区域,需要注意在寻找后要把这个位置的char改变为不能移动的那种为什么感觉这个题整理过...如果之前有肯定是我傻了类似于POJ Lake Couting 和 蓝桥杯2018比赛的一个湖的题题目链接//暑期练习27红与黑 计算连通区域 因为可以重复走? #include <iostream>using namespace std...
2018-07-30 13:26:20 555
原创 PAT L2-007 家庭房产(25 分)(并查集)
在学习了并查集以后拿这道题来练手非常好,涉及了并查集以及结构体二级排序算法,非常基础但是要求代码(一开始被自己坑了,在并查集找根时应该使用递归思想)并查集的基本操作://非压缩路径法找根 int get_root(int a){ if(par[a]==a) { return a; } else { return get_root(par[a]);//注意这里的递...
2018-07-30 13:11:38 968
原创 BJUTACM 1029:阶乘末尾0的个数
蓝桥杯填空水题遇到过这个题,还整理一次的原因是,2因子的个数远远少于5因子的个数,所以只需要统计5因子的个数即可题目链接#include <iostream>using namespace std;int main(void){ int n; cin>>n; int countfive = 0; for(int i=n;i>0;i--) {...
2018-07-30 13:01:03 247
原创 百练 棋盘问题(DFS)
一开始想的时候标记想错了,其实标记只要一组对列的标记就够,这样在行往下的过程中,行每行确定只放一个了,与一般dfs还有一点不同的是,这个有可能出现棋子数不足的情况,这就要求在dfs过程中,需要分放和不放两种,在放的部分中代码再体现出行的标记变换还有个有点阴的地方是#是可以放的,迷宫题做多了都默认#是不行的了 - -题目链接#include <iostream>#inc...
2018-07-30 13:00:54 263
原创 POJ 3624.Charm Bracelet(0-1背包问题)
这个就是0-1背包问题的模板,主要使用一个f[m]数组,表示在背包剩余m容量时,此时所能取得的最大价值,在循环中,状态转移成for(int i=1;i<=n;i++){ for(int j=m;j>=w[i];j--) { dp[j] = max(dp[j],dp[j-w[i]]+d[i]); }} 这个还是没完全理解,但是dp问题一般都是用一个dp数组,来表示...
2018-07-27 12:51:53 264
原创 BJUTACM 1031:切割回文
这个题是DP的经典题目,主要思想及状态转移在于:一个位置需要切割的刀数,等于从之前到他最长的回文序列,之前的那个元素切割的刀数+1,或者如果他与之前的无法构成回文序列,则等于之前那个位置所需要切割的刀数+1DP太不熟练了......真的需要多练了...题目链接#include <iostream>#include <cstring>using namesp...
2018-07-27 11:43:28 480
原创 百练 4116.拯救行动
这道题相比于平常的bfs走迷宫,多了一个,原来因为要维护步数优先的队列,所以先出队的元素永远处在步数+1的位置 但这个题由于杀死守卫需要多花一个步数,所以平常的队列不能做到按照这个,所以要使用到优先队列的技巧优先队列结构体的使用方法:struct node{ int x; int y; int step; node(int a,int b,int c) { x = ...
2018-07-27 00:21:16 550
原创 百练 股票买卖
这是一道典型的DP题目,需要模仿这种题继续练习,一开始自己的思想出现了点问题,后来发现需要两个数组进行记录第一个数组用来记录从1-i区间内 当前的 最大最小值之差第二个数组用来记录从i-n区间内,当前的最大最小值之差由于股票只能按照时间买入和出售,并且需要统计最大的两次,正好就采用这种DP方法题目链接实现的代码有点乱,因为思路有些混乱,在实现过程中角标也是一个难点// 作...
2018-07-25 20:38:35 193
原创 POJ 3278.Catch That Cow(附有Runtime Error解决办法)
这道题用来做bfs入门很合适,与之前做过的走迷宫相比,这个可以说是一维的一开始想要使用优先队列秀一把,结果把自己演进去了。。这个题有一个RE点:if(temp.x-1 >=0&&temp.x-1<100005&&vis[temp.x-1]==0) 这个条件必须把temp.x-1 >=0 写在前边,否则有可能造成数组越界题目链接...
2018-07-25 20:05:17 468 1
原创 百练 4103:踩方格
基础的dfs对于这种不能重新回去的,只能走一次的题,需要使用一个数组存储记忆,并且在DFS之后进行回溯,回溯成没有被访问过的状态题目链接//百练4103 踩方格 DFS深度优先搜索 基础递归 找到递归带什么参数好#include <iostream>#include <cstring>#include <algorithm>using na...
2018-07-25 19:57:17 464 1
原创 POJ 1458.Common Subsequence
最长公共子序列,典型的动态规划问题,需要认真分析maxLen[i][j] 代表s1 s2分别位于数学上的i j 位时 具有最长连续公共子序列的长度这样可以说,在i为0或者j为0时 maxLen[i][j] = 0 即没有最长公共子序列精髓的代码在这一部分 if(s1[i-1]==s2[j-1])//如果这两个位置的元素相等 { maxlen[i][j] =...
2018-07-24 22:18:22 157
原创 百练 2755:神奇的口袋
一道比较基础的递归题,递归的回溯问题自己还需要理解,递归的算法O(2^n)好像也能过?大概是由于数据规模不够大吧。。题目链接#include <iostream>using namespace std;int n;int a[105];int count = 0;void search(int value,int x){// printf("value = %d...
2018-07-24 21:33:19 249
原创 POJ 1088.滑雪
这个题本来是DP的,但是自己不太会,根据网上的代码学习以后发现dfs的方式自己更好理解,主要在于dfs函数的代码find(x,y)的返回值代表这个位置的已知最大连续值,这样在递归时直接就可以理解成那个位置的最大连续值,从而直接使用题目链接/* 滑雪 百练POJ1088 要求不断的单调递减 通过这个题发现很多DP问题都在于记忆化遍历 一定要记住一个东西 且记住的东西一般等于ma...
2018-07-24 21:22:08 165
原创 POJ 2456.Aggressive cows(二分+贪心)
题目大意:现在给了n个牛棚和c头牛,并且给出这n个牛棚的位置坐标xi,问每隔多少距离可以放一个牛?要求使得这个距离最大,并且保证所有牛都可以被放到牛棚中题目基础思想:从1-1000000000/c 进行枚举查找这样的效率显然很慢,所以在其中使用二分查找注意二分查找一般情况下的结束条件if(l>r)再放入牛棚时使用贪心算法,并且用一个temp记录下上一个已经放置了牛的位置...
2018-07-24 21:15:12 253
原创 百练 2757:最长上升子序列
这个之前有过lower_bound的 NlogN解法,这里所写的方法主要是为了练习动态规划DP的使用这里的思路是,在这个位置之前找到比这个位置小的元素,获取其maxLen的值,找到一个最大的 加上1 之后把这个值赋值给maxLen[i] 题目链接//最长上升子列,O(N^2)的,动态规划解法#include <iostream>#include <cstring...
2018-07-24 01:34:40 256
原创 数据结构 快速排序 在一个数组中找到两个数,使之和为x
网上没有找到类似的题目,自己出题试试。。。输入:n x n代表数组元素个数,x代表要查找的值之后n行 输入数组元素 //(要求数组中元素没有相同的,这样可以更好的体现出算法)(突然又发现不一定要求)输出:两个和为x的数一般的,会想到N^2的算法,但是如果先进行快速排序,之后在头尾设置两个指针,i=0,j=n-1 之后如果和大于x就j-- 如果和小于x就i++#...
2018-07-24 00:12:13 812
原创 数据结构 二分查找 输出前k大的数
(这个算法还没有使用二分算法)根据道理,可以做出一个N+MlogM的算法,这个算法才真正设计难点题目链接#include <iostream>#include <algorithm>using namespace std;int cmp(int a,int b){ return a>b;}int main(void){// NlogN的...
2018-07-23 23:41:00 217
原创 POJ 1163.The Triangle
题目大意:找出最长路的值d[i][j]代表当前元素的真实值,从来没有被改变,而二维数组maxSum作为记忆化的容器,在每个层,随着层数的上升记忆住了当前位置的最大路值,等于是分成了很多个小子问题,这也是动态规划问题的基础思想,这种题还有递归做法,但是由于可能会重复加,导致出现问题题目链接#include <iostream>using namespace std;in...
2018-07-23 23:24:52 310
原创 百练 4151:电影节
这个题之前也在书上看到过,属于贪心算法部分的题,贪心的部分在于电影的结束时间要越早越好具体思路:先按照结束时间进行排序,每次选择结束时间最早的电影,之后在剩余的电影中,选择开始时间在这次选择的电影结束时间之后的,结束时间最早的(因为已经排序直接顺着走就行)。这样在第一次中,在所有电影(此时所有电影剩余),选择结束时间最早的,而不考虑开始时间,因为第一次最多只能选择一场电影,这样结束时间越早...
2018-07-23 22:10:45 976 4
原创 百练 4110:圣诞老人的礼物-Santa Clau’s Gifts
这道题来源于北大暑期课程中的贪心算法,即每次取最大值,但是如果只能选择全部搬,即只能一整体一整体的搬,贪心法就不适用了,需要采用其他的方法题目链接//贪心法 圣诞老人的礼物百练 4110 Santa Clau's Gifts http://bailian.openjudge.cn/practice/4110/#include <iostream>#include <...
2018-07-23 20:42:11 1514
原创 PAT(乙级)1029 旧键盘(20 分)
水题...题目链接#include <iostream>#include <algorithm>#include <stack>#include <queue>#include <vector>#include <cstring>#include <cmath>#include &l
2018-07-22 17:50:22 248
原创 PAT(乙级)1060 爱丁顿数(25 分)
注意审题。。。题目有一句话说的是存在即可题目链接#include <iostream>#include <algorithm>#include <stack>#include <queue>#include <vector>#include <cstring>#include <cmath>
2018-07-22 17:43:52 335 1
原创 PAT(乙级)1032 挖掘机技术哪家强(20 分)
水题题目链接#include <iostream>#include <algorithm>#include <stack>#include <queue>#include <vector>#include <cstring>#include <cmath>#include <c
2018-07-22 17:39:48 138
原创 数据结构 括号匹配STACK基础题
已经不知道是哪里的题了,基础的入栈出栈括号匹配#include <iostream> #include <stack>#include <cstring>using namespace std;int main(void){ char s[10005]; gets(s); stack <char> sta; sta.push(...
2018-07-22 17:36:19 269
原创 POJ 1028.Web Navigation
一道经典的模拟题目,比较麻烦,不确定按照现在的水平还能不能做出来了。。。这个题主要是需要“指针”(不是平常说的那个指针),一个指向当前,一个指向去哪题目大意:有几个网页,题目给出向前向后的操作,要求输出所到达的那个网页题目链接#include <iostream>#include <cstring>using namespace std;int ma...
2018-07-22 00:19:53 224
原创 BJUTACM 1100:我是几点睡的?
模拟题,这类题比较看缘分,也比较看数据规模,在蓝桥杯比赛曾经做过一道,如果是不返回结果的比赛建议不要先做这类题了主要是找出多种情况题目链接#include <iostream>#include <algorithm>#include <stack>#include <queue>#include <vector>#...
2018-07-22 00:09:02 171
原创 POJ 3094.Quicksum
一种特殊的字符加法,主要考察字符应用,水题题目大意:一种特殊的字符加法,按照题目所属即可题目链接#include <iostream>#include <algorithm>#include <stack>#include <queue>#include <vector>#include <cstring&g...
2018-07-22 00:03:50 181
原创 POJ 3619.Speed Reading
一道理解题目的水题题目大意:一些奶牛举办读书会活动,给出三个数值:1每个奶牛每分钟的读书页数 2每个奶牛的最长连续阅读时间 3每个奶牛在连续阅读后所需要的时间,现在题目给出书的总页数,要求输出每个奶牛的阅读时间题目链接#include <iostream>using namespace std;int main(void){ int n,k; scanf("%d...
2018-07-22 00:00:39 173
原创 POJ 3589.Number-guessing Game
理解题意之后的一道完全水题,回复手感可以用题目链接#include <iostream>#include <algorithm>#include <stack>#include <queue>#include <vector>#include <cstring>#include <cmath>
2018-07-21 22:24:15 209
原创 POJ 3664.Election Time
在学校OJ上也做过的题,如果不想自己用qsort写比较函数的话可以借鉴这种结构体排序的方法POJ题目链接BJUTACM题目链接写结构体的比较函数://牛结构体struct cow{ int first;//第一轮得票数 int second;//第二轮得票数 int numebr;//代表牛的编号,这样在结构体进行排序的时候这个就会跟着换};//...
2018-07-21 22:21:58 188
原创 POJ 3620.Avoid The Lakes
这道题很像是之前遇到的LakeCounting 属于使用dfs遍历的题,比较基础,可以作为dfs入门题目大意:题目给出一个二维数组,要求判断最多的连通区域有几片水,蓝桥杯比赛上好像就做过很类似的题,只有上下左右才叫连通题目链接#include <iostream>#include <cstdlib>#include <algorithm>#i...
2018-07-20 19:29:36 198
原创 POJ 2656.Unhappy Jinjin
水题目链接#include <iostream>using namespace std;int main(void){ while(1) { int n; scanf("%d",&n); int max = -1; int jilu = 0; if(!n) return 0; for(int i=0;i<n;i++) { ...
2018-07-19 16:33:49 183
原创 PAT(乙级)1076 Wifi密码(15 分)
也是好久不做题拿来练练手感,有个问题是PAT上好像突然在C++的语言选择中用不了gets了,不知道是什么原因一直编译错误,但是切换到C就可以通过(因为是一组字符串的输入中含有空格所以需要使用gets)题目链接#include <stdio.h>#include <string.h>//这道题留下了一个没有解决的问题,为什么在pat上使用g++编译,gets会报错? i...
2018-07-12 16:18:39 1286 5
原创 PAT(乙级)1031 查验身份证(15分)
水题,好久没做题了拿来练练手感这种定义方式可以记忆一下,用这种方式存储好于每次用if或者switch-caseint score[20] = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};char M[20] = {'1','0','X','9','8','7','6','5','4','3','2'};题目链接#include <iostream>#...
2018-07-12 16:09:01 320
转载 好玩的Python短代码,下载微信头像并拼接
最近玩了玩一些和python有关的小代码,感觉python在处理这些实用性的问题上还是比C和Java强一些,可能这就是静态语言和脚本语言的区别吧这段代码中唯一需要修改的就是路径下载部分 getHeadImgs.pyimport itchatitchat.auto_login()for friend in itchat.get_friends(update=True)[0:]: prin...
2018-07-12 01:24:25 450
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人