自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

许少y

Codes change the world !

  • 博客(39)
  • 资源 (2)
  • 收藏
  • 关注

原创 UVa--437 The Tower of Babylon(dp)

UVa 437题意有 n 种长方体石块(x,y,zx, y, z),每种无限多,从中挑选一些石块组成一座塔,要求每个长方体石块的底面长宽严格小于它下方石块的底面长宽。每个石块可以任意选择一边作为高。求塔的最大高度。n<=30n <= 30.题解每个长方体可以有6种形态,那么这 n 种长方体共有 6n6n种形态,两种形态的长方体的底面长宽是一个二元关系,因此,这便转化为一个DAG图,和矩形嵌套类似。#

2016-02-28 14:51:45 366

原创 nyoj--7 街区最短路径问题(枚举 or math)

nyoj 7题解暴力枚举。#include <iostream>#include <cstdio>#include <fstream>#include <cstring>#include <set>#include <cmath>#include <algorithm>using namespace std;const int maxn = 20;const int inf = 1

2016-02-28 11:11:20 403

原创 nyoj--79 拦截导弹(dp)

nyoj 79题解单调递减最长子序列,把数组翻转过来就是一个单调递增最长子序列问题。#include <iostream>#include <cstdio>#include <fstream>#include <cstring>#include <vector>#include <algorithm>using namespace std;const int maxn = 25;int

2016-02-28 00:01:54 475

原创 nyoj--49 开心的小明(dp)

nyoj 49题解如果把 N 视为一个背包的容量,m 为物品数,viv_i,wi∗viw_i * v_i分别为物品的体积和价值,这便是一个纯粹的01背包问题。 用滚动数组计算。#include <iostream>#include <cstdio>#include <string>#include <fstream>#include <cstring>#include <algorith

2016-02-27 22:10:24 433

原创 nyoj--37 回文字符串(dp)

nyoj 37题意给你一个字符串,可在任意位置添加字符,最少再添加几个字符,可以使这个字符串成为回文字符串。题解设源字符串为 src,将其反转得到 rev,计算 src 和 rev 的最长公共子序列长度 L,则答案为 源字符串长度减去 L.#include <iostream>#include <cstdio>#include <string>#include <cstring>#inclu

2016-02-27 19:08:26 339

原创 nyoj--16 矩形嵌套(经典DP)

nyoj 16题意有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<da<c,b<d或者b<c,a<db<c,a<d(相当于旋转X90度)。例如(1,5)可以嵌套在(6,2)内,但不能嵌套在(3,4)中。你的任务是选出尽可能多的矩形排成一行,使得除最后一个外,每一个矩形都可以嵌套在下一个矩形内。题解按白书上的分析,矩形之间的“可嵌套”

2016-02-27 11:37:04 380

原创 曲线

后知后觉的发觉今天是英语四级成绩公布的日子。身在一所渣渣学校,听到周边一片低分飘过的唏嘘声,更多的是早已预知必挂无疑的感慨声,我顿时有点慌了,之前建筑的自信仿佛被这感染,颤抖不已。想起四级考试前个把月,那时候心态巨牛逼啊,”战略上藐视敌人“,小小四级本少侠还会过不了?于是只刷了几套真题卷,背三两单词,TED上看了几期视频当作是练听力了,期间还不忘对人吹牛”四级很容易过的啦,要相信自己能过云云“,总之

2016-02-27 00:58:26 367

原创 hdoj--2112 HDU Today(最短路径)

HDOJ 2112题解一个求最短路径的问题,与一般的最短路问题有所不同的是,此题图的结点是字符串。所以需要特殊处理。 一种策略是将每个字符串映射为一个整数,转化为普通的最短路问题。 还有一种是使用map,思想仍然是映射。 需要注意的一点是,目的地有可能是公交车到不了的,WA一次。#include <iostream>#include <cstdio>#include <map>#incl

2016-02-26 22:29:20 516

原创 UVa--1395 Slim Span(生成树)

题意给定带权无向图 GG,定义: The slimness of a spanning tree T is defined as the difference between the largest weight and the smallest weight among the n−1 edges of T. 求 slimness 尽可能小的生成树。题解把边按权值从小到大排序,枚举每一个边的区

2016-02-22 22:08:40 434

原创 PAT--1085 Perfect Sequence(二分查找)

题意给一个正整数序列和正整数p,定义完美序列为 M<=m∗pM <= m *p,其中,M是序列中最大的数,m是序列中最小的数。 从给定的序列中找到这样一个完美序列,使其包含尽可能多的元素。输出其包含的个数。题解首先排序,对序列的每一个数aia_i,计算 ax=ai∗pax = a_i * p,在序列中找出axax应该所处的位置pospos,pos−i+1pos - i + 1就是一个“完美”子序列

2016-02-22 15:07:30 555

原创 PAT--1084 Broken Keyboard

题解src = input().upper()dec = input().upper()letterSet = []i = j = 0while i < len(src) and j < len(dec): if src[i] != dec[j]: if src[i] not in letterSet: letterSet.append(src

2016-02-22 12:31:31 410

原创 PAT--1013 Battle Over Cities(并查集)

PAT 1013题意一个无向图,去除一点以及这点邻接的边,输出使余图连通还需的边数。题解并查集高效判断连通性。#include <iostream>#include <cstdio>#include <algorithm>using namespace std;const int maxn = 1000 + 5;const int maxe = (maxn + 1) * maxn / 2;

2016-02-21 23:26:46 436

原创 UVa--10129 Play on Words(欧拉通路)

UVa 10129题意n个单词,是否可以把它们排成一个序列,是的每个单词的第一个字母的前一个单词的最后一个字母相同。输入中可以有重复单词。题解把字母看作结点,单词看作边,那么这题便是判断构成的有向图中是否存在欧拉通路。 有向图存在欧拉通路需要满足两个条件: 1. 它的无向图连通; 2. 顶点度数满足:顶点的入度等于出度,或者有两个顶点,一个入度比出度大1,另一个出度比入度大1,其他顶点入度等于

2016-02-21 11:26:22 482

原创 UVa--10305 Ordering Tasks(拓扑排序)

UVa 10305题解简单的拓扑排序。#include <bits/stdc++.h>using namespace std;const int maxn = 100 + 5;int graph[maxn][maxn];int indegree[maxn];int n, m;void topo(){ queue<int> Q; vector<int> ans; for

2016-02-20 15:33:28 439

原创 UVa--11181 Probability|Given(math)

UVa 11181题意n个人去超市逛,其中第ii个人买东西的概率为PiP_i,已知有rr个人买了东西,计算每个人实际买了东西的概率。 1<=n<=201 <= n <= 20, 0<=r<=n0 <= r <= n题解实际上这是计算条件概率:P(Ei|E)=P(EiE)P(E)P(E_i | E) = \frac{P(E_i E)}{P(E)} 其中 P(Ei)P(E_i)表示第ii个人买东西的

2016-02-19 22:14:19 355

原创 UVa--10491 Cows and Cars(math)

UVa 10491题解设 a = NCOWS, b = NCARS, c = NSHOW 选择某扇门后,主持人再打开 c 个牛门,这时还剩下 a + b - c - 1 扇门未开,也只有这些门是可换的。 假设一开始选择了牛门:最后选到车的概率为, aa+b∗ba+b−c−1\frac{a}{a + b} * \frac{b}{a + b - c - 1} 假设一开始选择了车门:最后选到车的概率

2016-02-19 15:23:13 400

原创 UVa--1636 Headshot(概率)

UVa 1636题意你和人决斗。决斗规则如下:用一把有n个弹槽的左轮手枪,对着自己脑袋来一枪,孰生孰死看天意。现在对方已经装了若干发子弹,并随机转了一下转轮,子弹呢用一个01序列表示,0表示这个弹槽无子弹,1表示有子弹。对方先对着自个脑袋开了一枪,嗯,你只听到了一声’click’,人还好好的,是空枪。现在轮到你了,摆在你面前的有两个选择,一是直接对自己开射,二是转一下转轮再来开射,显然你会选择生还希

2016-02-19 14:27:47 1021

原创 UVa--12716 GCD XOR(math)

UVa 12716题意给定整数n,求有多少对整数(a, b)满足: 1 <= b <= a <= n,且 gcd(a, b) = x ^ b.题解设 c=gcd(a,b)=a Xor bc = gcd(a, b) = a \text{ Xor } b, 则:  c 是 a 的约数,b=a Xor cb = a \text{ Xor } c 因此,可以枚举 a 和 c,为降低枚举的复杂度,利用 c

2016-02-18 23:07:35 381

原创 UVa--10791 Minimum Sum LCM(math)

UVa 10791题解算术基本定理的应用。 将n分解,n=pa11pa22...pakkn = p_1^{a_1}p_2^{a_2} ... p_k^{a_k},可知将每个pakkp_k^{a_k}作为一个因子时最优。 注意当 n = 1和 n 为素数的时候,最小和为 n+1n + 1.#include <bits/stdc++.h>using namespace std;int main()

2016-02-18 21:11:55 327

原创 UVa--10375 Choose and divide(math)

UVa 10375题解C(p,q)C(r,s)=p!(r−s)!s!q!(p−q)!r!\frac{C(p, q)}{C(r, s)} = \frac{p!(r - s)!s!}{q!(p - q)!r!} 根据算术基本定理:n=pa11pa22...pakkn = p_1^{a_1} p_2^{a_2}...p_k^{a_k},其中pkp_k为素数,ai∈N+a_i \in N_+. n!=1

2016-02-18 19:04:12 428

原创 蓝桥杯--算法提高 我们的征途是星辰大海 (模拟)

算法提高 我们的征途是星辰大海  时间限制:1.0s   内存限制:256.0MB  最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格组成。  共有四种方格:  ‘.’ 代表空地,curiosity可以穿过它  ‘#’ 代表障碍物,不可穿越,不可停留  ‘S’ 代表curiosity的起始位置  ‘T’ 代表curiosity的目的地 

2016-02-16 13:08:57 1297

原创 UVa--400 Unix ls(格式输出)

UVa 400题解模拟 Unix 的 ls 命令。 输入n以及n个文件名,排序后按照列优先的次序左对齐输出。 注意: The rightmost column will be the width of the longest filename and all other columns will be the width of the longest filename plus 2. 据此

2016-02-15 16:19:18 515

原创 UVa--1594 Ducci Sequence(模拟)

UVa 1594题解既然输入保证最多1000步就会变成0或者循环,那么只要执行1000步判断是否会变成0即可.#include <bits/stdc++.h>using namespace std;const int maxn = 15;int a[maxn];int n;inline bool reachZero(){ for(int i = 0; i < n; ++i)

2016-02-15 15:06:42 493

原创 UVa--1593 Alignment of Code(string)

UVa 1593题意:输入若干行代码文本,要求各列单词的左边界对齐且尽量靠左。单词之间至少要空一格。Sample Input start: integer; // begins herestop: integer; // ends heres: string;c: char; // tempSample Outputstart: integer; // begins her

2016-02-15 14:31:57 430

原创 python笔记之字典的创建

#传统方式创建D = {}D['name'] = 'Julys'D['age'] = 19D = {'name':'Julys', 'age':19}#通过dict函数创建D = dict(name='Julys', age=19)D = dict([('name', 'Julys'), ('age', 19)])D = dict(zip(['name', 'age'], ['July

2016-02-15 12:53:18 368

原创 UVa--679 Dropping Balls(模拟)

UVa-679题解:如果模拟这这所有I个小球的小落,会超时。直接模拟最后一个小球的路线。#include #include #include #include using namespace std;int main(){ int t, D, I; cin >> t; while(t--) { cin >> D >

2016-02-14 17:20:03 427

原创 BestCoder Round #72 (div.2) B.Clarke and points

& hdoj 5626题意:平面上n个点,求两点间最大的曼哈顿距离。题解:假设A, B两点使得曼哈顿距离最大,去绝对值,可以化简如下:则只要分别求出最大和最小的、即可。#include #include #include #include using namespace std;typedef long long ll;const int

2016-02-14 00:06:50 416

原创 BestCoder Round #72 (div.2) A.Clarke and chemistry

& hdoj 5625题解:枚举 a 和 b 的值,用三个数组分别记录A, B, C三种物质所含的元素。#include #include #include #include #include #include #include #include using namespace std;int a[30], b[30], c[30];int main()

2016-02-13 22:52:51 426

原创 UVa--12657 Boxes in a line(双向链表)

UVA--12657题解:lrj大法。采用双向链表,编号为 i 的的盒子左右两边的盒子编号分别为 left[i] 和 right[i] 。技巧:操作4反转需要修改所有元素的指针,为避免时间消耗,增加一个标记 inv, 表示有无反转,这样就并不需要真的去执行操作4.inv = 1表示奇数次反转,inv = 0表示偶数次反转。当inv = 1的时候,操作1和2需要反过来,操作3

2016-02-13 22:31:28 449

原创 UVa--11988 Broken Keyboard (a.k.a. Beiju Text) (list)

UVa-11988题解:每次读到'['字符,便从行首继续读入,读到']'字符,从行尾继续读入。#include #include #include #include using namespace std;int main(){ string str; while(cin >> str) { list text; au

2016-02-13 16:21:50 374

原创 UVa--514 Rails (stack)

UVa--514题意:判断一个出栈序列是否合法。题解:典型的栈应用,用栈模拟。注意蛋疼的格式。#include #include #include #include #include using namespace std;int n;vector a;bool judge(){ stack S; int j = 0; for(int

2016-02-13 15:18:15 397

原创 UVa--140 BandWidth (DFS)

传送门题意:给出一个有n个顶点的图,结点编号 A ~ Z。给定顶点的一个排列,那么定义结点v的带宽B(v)为v和相邻结点在排列中的最远距离,而所有B(v)的最大值定义为图的带宽。本题所求为给定图G,求出让带宽最小的结点的排列。n 题解:考虑到n 此题建立图略微麻烦。#include #include #include #include #includ

2016-02-09 20:26:16 334

原创 UVa--129 Krypton Factor(DFS)

传送门题解:LRJ大法。如何避免相邻的重复子串?每增加一个字符,从长度j(1 # include # include # include using namespace std;int n, L;int S[100];int cnt;int dfs(int pos) //返回0表示已经得到解,无须继续搜索{ if(cnt++ ==

2016-02-09 13:56:55 792

原创 UVa--10976 Fractions Again(枚举)

传送门

2016-02-06 16:06:45 417

原创 UVa--11059 Maxumum Produce(枚举)

传送门题意:找出序列S的乘积最大的连续子序列,如果最大的乘积不是正数,输出0. 1 题解:数据规模小,直接枚举各个子序列,取其最大乘积。注:UVa OJ的c++11编译器不支持%I64d输出,提交n多次才醒悟,泪。。# include # include # include using namespace std;const int maxn =

2016-02-06 14:39:20 534

原创 UVa--725 Division(枚举)

传送门题意:输入正整数n,按从小到大的顺序输出所有形如 abcde / fghij = n的表达式,其中 a~j 恰好为数字 0~9的一个排列(可以有前导0),2 分析:记表达式为 a / b = n,只要枚举出b, 相应的a = n * b,然后判断a, b是否所有的数字都不相同即可。b的枚举起始点是 [1234, 98765 / 2]。# include

2016-02-05 18:35:44 484

原创 单源最短路径之Bellman-Ford 算法

概述单源最短路径是要解决这样一类问题:给定一个图 G=(V,E)G=(V,E),找到从给定源结点 s∈Vs∈V 到每个结点 v∈Vv∈V 的最短路径。其中,从结点uu到结点vv的最短路径权重 δ(u,v)δ(u,v) 定义为:δ(u,v)={min{ω(p):u⇝v},∞,如果存在一条从 u 到 v 的路径其他δ(u,v)={min{ω(p):u⇝v},如果存在一条从 u 到 v

2016-02-05 11:22:39 703

原创 蓝桥杯--历届试题 剪格子(DFS)

历届试题 剪格子 时间限制:1.0s 内存限制:256.0MB问题描述如下图所示,3 x 3 的格子中填写了一些整数。+--*--+--+|10* 1|52|+--****--+|20|30* 1|*******--+| 1| 2| 3|+--+--+--+ 我们沿着图中的星号线剪开,得到两个部分,每个部分的数字和都是60。

2016-02-05 11:11:56 3639 4

原创 POJ--1064 Cable master(二分搜索)

传送门:1064 Cable master(挑战程序设计竞赛--练习)题意:有N条绳子,长度分别为 Li, 从它们中切割出K条长度相同的绳子,求这 K 条绳子每条最长能有多长?分析:设最长为x,则x满足条件:问题便转化为寻找到这样一个满足上述条件的x,这可以用二分搜索来寻找,搜索区间为 [0, max(Li) + c],c为任意常量,只要保证大于 max(Li)。每次迭代都会缩小解

2016-02-04 18:06:07 418

mybatis从入门到精通

mybatis从入门到精通 Mybatis使用之环境搭建 Mybatis使用之简单的增删改查 ...

2018-04-16

蓝桥杯2014年C语言真题

2014年的蓝桥杯C语言试题。 1.啤酒和饮料 2.切面条 3.李白打酒 4.史丰收速算 5.打印图形 6.奇怪的分式 7.六角填数 8.蚂蚁感冒 9.地宫取包 10.小朋友排队

2015-02-02

空空如也

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

TA关注的人

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