自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

308宿舍的鶸

一只鶸的博客

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

原创 洛谷OJ:P1991 无线通讯网

分析:根据"任意两个配备了一条卫星电话线路的哨所(两边都ᤕ有卫星电话)均可以通话,无论他们相距多远"和可安装的卫星电话的哨所数为s可知只需要将这些哨所连城s个联通块即可,所以只需要贪心将当前剩余最短的边加入生成树并记录生成树中最长的边至剩余s个联通块即可得出答案。#include <algorithm>#include <iostream>#include <ve...

2018-04-24 21:27:09 210

原创 洛谷OJ: P2921 [USACO08DEC]在农场万圣节Trick or Treat on the Farm(强连通分量)

思路:求强连通分量的模版题, 答案就是结点个数大于1的强连通分量的个数#include <iostream>#include <vector>#include <cstdio>#include <stack>#define sz size()#define Min(a,b) a<b?a:busing namespace std;...

2018-04-22 15:31:15 380

原创 记强连通分量的学习

第一部分------求强连通分量1.强连通分量的概念"有向图强连通分量:在有向图G中,如果两个顶点vi,vj间(vi>vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连通分量(strongly connected compon...

2018-04-22 00:22:18 306

原创 洛谷OJ: P2661 信息传递

思路:看完题目思考了一会后就想到判环即可,统计记录环的长度。#include <iostream>#include <cstdio>using namespace std;const int maxn = 200000+10;int par[maxn], dis[maxn];int n, temp, ans = 0x3f3f3f3f;void init(in...

2018-04-19 19:06:37 261

原创 洛谷OJ: P1330 封锁阳光大学

今天C语言课写完实验报告就开始做题,然后只想了思路,没有写代码,下午物理实验课回来把代码写上再修改了一下就AC了。思路: 用dfs将图染色,只需染两种颜色,如果遇到已经染色过的点,判断该点的色彩与领边点的色彩是否一样,如果一样的话那么就输出"Impossible",染色的同时统计每种颜色的数量,较小的那个数量即为答案,但是第一次交的时候我没有想到可以分成被多个图,于是统计的是全图的颜色,正确的做法...

2018-04-19 18:55:06 258

原创 记2018年第九届蓝桥杯省赛

今天不想用脑所以就水一水博客吧...今年的蓝桥杯出的题目和之前我准备的可太不一样了,我以为又是一堆的搜索题,暴力杯可还行,万万没想到这和我想的好像不太一样啊,反正就是硬着头皮做...4.1的愚人杯可还行,早早的就和我华哥一起去考场了,一进去就开始敲模板,素数筛,并查集,线段树,gcd,exgcd,Dij,Krusal,Ford-Folkerson....反正最后也没用上,不过写完也没那么紧张了,就...

2018-04-19 01:55:46 1705 2

原创 2018年第九届蓝桥杯【C++省赛B组】【第三题:乘积尾零】

第三题标题:乘积尾零如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零?5650 4542 3554 473 946 4114 3871 9073 90 4329 2758 7949 6113 5659 5245 7432 3051 4434 6704 3594 9937 1173 6866 3397 4759 7557 3070 2287 1453 9899 1486 572...

2018-04-19 01:25:46 930

原创 2018年第九届蓝桥杯【C++省赛B组】【第二题:明码】

第二题标题:明码汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛。16点阵的字库把每个汉字看成是16x16个像素信息。并把这些信息记录在字节中。一个字节可以存储8位信息,用32个字节就可以存一个汉字的字形了。把每个字节转为2进制表示,1表示墨迹,0表示底色。每行2个字节, 一共16行,布局是:第1字节,第2字节第3字节,第4字节....第31字节, 第32字节这道题目是给你一段多个...

2018-04-19 01:20:33 384

原创 2018年第九届蓝桥杯【C++省赛B组】【第一题:第几天】

2000年的1月1日,是那一年的第1天。那么,2000年的5月4日,是那一年的第几天?注意:需要提交的是一个整数,不要填写任何多余内容。分析:用Excel计算即可答案:125...

2018-04-19 01:15:30 1086 2

原创 校OJ: P1060 第四届程序设计大赛 勇者斗恶龙

寒假的时候做了一些搜索题,顺便就把这题做了,回学校一交就AC了#include <iostream>using namespace std;const int maxn = 1000+10;int n, m, l;int book[maxn], damage[maxn], ci[maxn], ans = 0x3f3f3f3f;bool isend[maxn], isgo;...

2018-04-18 16:43:50 824

原创 洛谷OJ:P1135 奇怪的电梯

这题有三种解法,1.搜索 2.最短路 3.DP1.直接写个DFS就行了#include <iostream>#include <cstdio>using namespace std;const int maxn = 200+10, inf = 0x3f3f3f3f;int k[maxn], ans = inf;bool vis[maxn];int n, a, ...

2018-04-18 16:33:10 338

原创 洛谷OJ: P1417 烹调方案

思路: 分析后就是一道01背包题,但如果按普通的01背包题直接进行DP的话只能拿到35分,我们来分析一下为什么。举个例子,如果先使用了第一个物品,那么第二个物品的价值就会随之减小,但如果正确答案是先选第二个物品的后选第一个物品的话,那么得到的结果肯定就是错的,那么我们该如何选取物品呢?先将例子种式子列出来ans1 = a1-b1*(p+c1)+a2-b2*(p+c1+c2)ans2 = a2-b2...

2018-04-17 23:54:14 263

原创 洛谷OJ: P1373 小a和uim之大逃离

思路:首先给小uim改个名,叫他小b好了,那么我们定义dp[i][j][k][0/1]为,在i,j点,小a小b的魔瓶差值为k,0代表小a吸收了这一格的魔液,1则是小b吸收了这一格的魔液,有几种方法到达这种状态。这个k坑了我好久。。由于小a与小b两者魔瓶的差值可以为k,可是当k模k的时候得数却是0,所以我们得让k加1,开始数组开小了也WA了好几次。通过定义的dp数组我们可以得到递推式1.dp[i][...

2018-04-16 23:52:47 197

原创 洛谷OJ: P2347 砝码称重

思路:一道多重背包题,之前学习背包问题的时候了解到多重背包可以转换成01背包来做,但是可以通过二进制的思想来优化它,比如13可以拆分成2^0,2^1,2^2,6,这四个数组合可以得到1~13之间的任意整数,那么就把13个物品成功转化为了4个物品,那么这题也是一样的,将a1的个数拆分为2^0,2^1,...,之后当作一道01背包来做#include <iostream>#include...

2018-04-16 23:30:21 526

原创 洛谷OJ: P1156 垃圾陷阱(DP)

昨天五点才睡导致今天状态太差了,所以三个小时才勉强做出来这题,哎,还是得早睡早起呀思路:首先来分析一下一个时刻有几种状态,1.时间 2.生命值 3.垃圾高度 4.剩余垃圾数,难道要开一个三维数组来记录吗?当然是不可能的,通过思考,我们发现时间和剩余垃圾数是有关联的,因为题目告诉我们垃圾是按顺序丢的,所以可以通过记录剩余垃圾数来得到时间,那么我们只需要记录三个状态,也就只需要开一个二维数组,首先我们...

2018-04-16 23:20:39 283

原创 洛谷OJ: P1220 关路灯(DP)

刚看完题目的时候感觉这很容易嘛,不就向左向右两种转移方式,于是直接就写出了动态转移方程,dp[i][j]表示关闭i~j区间内所有灯的最小消耗,dp[i][j] = min{dp[i-1][j]+dis(i,i-1)*w(i-1,j), dp[i][j+1]+dis(j+1,j)*w(i-1,j)}。后来写出来代码发现不对,思考了一会以后发现没有考虑此时人的位置在哪里,需要多加一种状态。之后得到了如...

2018-04-16 03:08:14 299

原创 洛谷OJ: P1005 矩阵取数游戏

今天因为高数模拟考没怎么做题,就睡前做了这么一题,舍友也开始一起在洛谷刷题了,很开心,但是高数只考了63,很不开心,心情复杂。思路:每一行都是独立的选择,不要因为有多行而被带到错误的思考方向,所以我们开始分析独立的一行数据,那么只有两种选择,1.选择最开头的数字 2.选择最末尾的数字, 而每次增加的分数都是2^i*选择的数字,那么我们稍加思考就可以得到状态转移方程啦。首先,我们定义dp[i][j]...

2018-04-16 01:46:34 372 1

原创 2017第八届蓝桥杯决赛---36进制

标题:36进制对于16进制,我们使用字母A-F来表示10及以上的数字。如法炮制,一直用到字母Z,就可以表示36进制。36进制中,A表示10,Z表示35,AA表示370你能算出 MANY 表示的数字用10进制表示是多少吗?请提交一个整数,不要填写任何多余的内容(比如,说明文字)简单的进制转换#include <iostream>#include <string>#incl...

2018-04-15 16:19:28 296

原创 洛谷OJ: P1006 传纸条

思路:开始看到这题的时候无从下手,于是就在纸上试着画出路线,看看有没有什么规律,画着画着发现在画完路线的图上每一条从右上到左下的斜线都只用到了两个同学,并且在斜线上一条线路永远在另一条线路的右上方,因为做n皇后问题的时候有利用过这种斜线,于是就想以这个作为突破口写出状态转移方程,思考了有一个小时吧...最后才得到了状态转移方程首先我们定义dp[k][i][j]的意义为横纵坐标为k的斜线上, 在下面...

2018-04-15 04:50:04 416

原创 洛谷OJ: P1387 最大正方形(DP)

思路,只有当↖←↑这三个方向都是1时才能组成正方体,所以就能直接得到状态转移方程啦dp[i][j] = min{dp[i-1][j-1], dp[i][j-1], dp[i-1][j]} + 1 (dp[i][j] != 0)/** * 题目: 洛谷OJ P1387 最大正方形 * 题型: DP **/#include <cstdio>#include <iostrea...

2018-04-15 03:10:07 447

原创 洛谷OJ: P1508 Likecloud-吃、吃、吃

思路:一题非常直观的DP,直接就可以列出动态转移方程dp[i][j] = dp[i][j] + max{dp[i-1][j-1], dp[i-1][j], dp[i-1][j+1]};即向左前方走,向前走,向右前方走说来和校OJ那题走运的zzz简直一模一样呢,不过这题有个坑点就是"每组数据的出发点都是最后一行的中间位置的下方!",所以最后的答案应该是最下面一行最中间的三格中最大的那个值/** *...

2018-04-15 02:47:37 290

原创 洛谷OJ:P1855 榨取kkksc03(DP)

思路:还是一道01背包,不过有了两个属性而已/** * 题目: 洛谷OJ:P1855 榨取kkksc03 * 题型: DP **/#include <cstdio>#include <cstring>#include <iostream>using namespace std;const int maxn = 200+10;int dp[ma...

2018-04-15 02:15:28 253

原创 洛谷OJ: P1140 相似基因(DP)

思路:仍然是一道简单的DP,首先我们来分析一下有几种策略可以选择1.令第一条链的碱基与空碱基配对2.令第二条链的碱基与空碱基配对3.令两条链的碱基相互配对那么我们很容易就能够得到状态转移方程了,dp[i][j]表示第一条链的1~i部分与第二条链的1~j部分的最大匹配值dp[i][j] = max{dp[i][j], dp[i-1][j]+a[i]与空碱基的匹配值, dp[i][j-1]+b[j]与...

2018-04-15 01:55:55 582

原创 洛谷OJ:P1880 [NOI1995]石子合并(DP)

思路:首先来分析一下题目,“在一个圆形圆形操场”告诉我们石头是按环状摆放的,也就是说头尾也可以合并,这个容易解决,我们将数组扩大一倍即可。之后思考动态转移方程怎么写,合并一组石子首先要将这一组石子中的每一堆石子两两合并,那么我们很容易就可以得到动态转移方程Problem1:dp[i][j] = min{k|dp[i][j], dp[i][k]+dp[k+1][j]+w(i, j)}Problem2...

2018-04-15 01:10:06 320

原创 洛谷OJ: P1091 合唱队形(LIS)

思路:求出以每个人结尾的最长上升子序列以及以每个人开头的最长下降子序列即可/** * 题目: 洛谷OJ P1091 合唱队形 * 题型: DP **/#include <cstdio>#include <iostream>using namespace std;const int maxn = 100+10;int dp1[maxn], dp2[maxn]...

2018-04-14 19:14:54 294

原创 洛谷OJ: P1020 导弹拦截(LIS)

思路:Problem1:  第一个问题就是求最长不上升子序列长度Problem2: 第二个问题看上去有些难, 但是通过组合数学中的"Dilworth定理"可以知道"最少的下降序列个数就等于整个序列最长上升子序列的长度", 所以第二个问题就是求最长上升子序列长度/** * 题目: 洛谷OJ P1020 导弹拦截 * 题型: DP **/#include <cstdio>#inc...

2018-04-14 17:27:41 401

原创 洛谷OJ: P1064 金明的预算方案(01背包问题)

思路: 这是一道01背包问题, 只有选与不选的这两种情况, 但是这题物品的属性比起普通的01背包只有重量和价值以外多了主件/附件这一属性, 再看题目中"每个主件可以有0个、1个或2个附件"这一句话,一种物品的所有选择情况只有:1.只选择主件  2.选择主件+附件1  3.只选择主件和附件2  4.选择主件和所有附件, 那么我们很容易就能得到状态转移方程dp[i]= max{dp[i], dp[i-...

2018-04-14 16:20:47 314

原创 洛谷OJ: P1048 采药 (01背包问题)

分析: 动态转移方程dp[i] = max{dp[i], dp[i-w[i]] - v[i]}/** * 题目: 洛谷OJ P1048 采药 * 题型: 01背包 **/#include <cstdio>#include <iostream>using namespace std;const int maxn = 1000+10;int N, W, d...

2018-04-14 12:54:59 453

原创 洛谷OJ: P1616 疯狂的采药(完全背包问题)

分析: 和01背包的不同之处就在于第二个循环,01背包是从后向前推,无法从后面的状态中获得收益,但是完全背包可以选很多个,就可以从前向后推,进而从之前的状态中获取收益,状态转移方程dp[i] = max{dp[i], dp[i-w[i]] + v[i]},这一题的w是时间t#include <cstdio>#include <iostream>using namespa...

2018-04-14 12:44:16 405

原创 洛谷OJ: P1049装箱问题(01背包问题)

思路:其实还是求背包最多能装多少东西,状态转移方程dp[i] = max{dp[i], dp[i-w[j] + v[j]}, 在这一题中w和v是相同的#include <cstdio>#include <iostream>using namespace std;const int maxn = 20000+10;int N, W, dp[maxn], temp;...

2018-04-14 12:36:16 351

原创 洛谷OJ: P1164 小A点菜(01背包问题)

我最薄弱的方面就是DP了,之前一直很害怕DP,从今天开始就攻一攻DP吧,先把以前做的复习一遍分析: 1.如果当前的余额i恰好能够点这道菜,那么金额为i时的点菜方式增加1         2.如果当前的余额i点完这道菜还有剩余,那么金额为i时的点菜方式增加不点这道菜时的方式所以得到递推式dp[j] = 1.dp[j]+1 (j=temp) 2.dp[j] + dp[j-temp] (j > t...

2018-04-14 01:49:01 303

原创 洛谷OJ : P1060 开心的金明(01背包问题)

我最薄弱的方面就是DP了,之前一直很害怕DP,从今天开始就攻一攻DP吧,先把以前做的复习一遍分析: 可以说这是我做的第一道DP题了,经典的01背包问题,递推式为dp[j] = max{dp[j], dp[j-w_[i]]+v_[i]};这一题的w_[i]就是v[i],而v_[i]就是p[i]*v[i]/** * 题目: P1060 开心的金明 * 类型: 01背包问题 *...

2018-04-14 01:30:24 271

原创 校OJ: 1311 防御罩

刚刚问了一下舍友他学校OJ哪题不会,我给他发个博客,于是就选了这一题.首先我们来分析一下题意,就是以最少的防御罩个数来覆盖所有的太空基地,所以这是一道贪心的区间覆盖问题.翻了翻以前自己写的代码也是五味杂陈,八九十行可太秀了,于是重新写了一个,不过心太急了做了好几遍才写出来2333那么下面上代码/** * 校OJ: 1311 防御罩 * 贪心区间覆盖 **/#include <ios...

2018-04-14 01:13:58 1332

原创 洛谷OJ: P1514 引水入城

思路:首先用BFS搜索(其实用记忆化的DFS更好)能够到达的城市,判断一下是否所有城市都能够被覆盖即可完成第一问,那么关键在于第二问怎么完成,通过思考可以得出"如果每座城市都可以到达,那么一个蓄水场可到达的城市是连续的"这样一个结论,那么就变成了一个区间覆盖问题,至此已经可以完成这一题了/** * 洛谷oj: P1514 引水入城 * 类型:搜索,贪心 */#include<al...

2018-04-13 19:32:07 290

原创 洛谷OJ: P1242 新汉诺塔

题目描述设有n个大小不等的中空圆盘,按从小到大的顺序从1到n编号。将这n个圆盘任意的迭套在三根立柱上,立柱的编号分别为A、B、C,这个状态称为初始状态。现在要求找到一种步数最少的移动方案,使得从初始状态转变为目标状态。移动时有如下要求:·一次只能移一个盘;·不允许把大盘移到小盘上面。输入输出格式输入格式:文件第一行是状态中圆盘总数;第二到第四行分别是初始状态中A、B、C柱上圆盘的个数和从上到下每个...

2018-04-11 20:52:18 322

原创 校OJ: P1472 素数判断

这题考的是判断素数,下面直接上代码,怕大家看不懂,所以我改成了比较暴力的判断素数方法#include <stdio.h>int isPrime(int num) { int i; if( num == 1 ) return 0; for( i = 2; i < num; i++ ) if( num % i == 0 ) ...

2018-04-11 19:31:03 302

原创 校OJ: P1469 排序并插入

这一题主要考的是排序,大家可以去学习一下快速排序,这是一个比较常用的排序方法,我这里为了方便直接用C++的sort函数对它进行排序,大家可以自己写一个函数来排序#include <algorithm>#include <iostream>#include <cstdio>using namespace std;int main() { int ...

2018-04-11 19:22:07 335

原创 校OJ: P1466 零钱换整钱

嘻嘻,暴力就可以啦#include <stdio.h>int main() { int i, j, k; for( i = 1; i <= 100; i++ ) { for( j = 1; j <= 100; j++ ) { for( k = 1; k <= 100; k++ ) { ...

2018-04-11 19:17:51 947 1

原创 校OJ: P1460 霍金的轮椅

一道模拟题,按照题目的意思一步一步翻译就好了,代码写的有点冗长qwq#include <stdio.h>int ans1, ans2;char ch;char str[1000];int cur, x, y;int main() { int i; scanf("%d %d %c", &x, &y, &ch); getchar(); if...

2018-04-11 19:08:09 397

原创 校OJ:P1454 让我们荡起双桨

一道贪心题,按照题目的意思,应该尽量把船坐满,所以从最后一位乘客开始找和最后一名乘客体重之和仍小于等于最大负重的乘客,那么直接上代码。#include <stdio.h>int p[1000], ans, n, m;int main() { int i, j; scanf("%d %d", &n, &m); for( i = 1; i <= m; i...

2018-04-11 19:00:00 416

空空如也

空空如也

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

TA关注的人

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