自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不慌不忙、不急不躁

https://github.com/JeraKrs

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

原创 【索引】 AOAPC I: Beginning Algorithm Contests -- Training Guide (Rujia Liu)

AOAPC I: Beginning Algorithm Contests -- Training Guide (Rujia Liu)Chapter 1. Algorithm DesignChapter 2. MathematicsChapter 3. Data StructuresChapter 4. GeometryChapter 5. Graph TheoryChapte

2013-12-08 22:30:50 2457

原创 CodeForces Good Bye 2013

Problem A: New Year Candles (379A)题目大意:给出a和b,表示有现在有a根蜡烛,烧完b根蜡烛后可以换取新的一根蜡烛,问最多可以点多少根蜡烛。解题思路:水题。#include #include int main() { int ans = 0, a, b; scanf("%d%d", &a, &b); while (a

2013-12-31 13:18:32 1663 1

原创 【索引】CodeForces Round #222 (Div. 2)

Problem A: Playing with Dice (378A)题目大意:两个人猜数1~6,给出a和b,然后随机丢一个色子,问说接近a的可能,相等的可能,以及接近b的可能。解题思路:完完全全的签到题。#include #include #include int main() { int a, b; int x = 0, y = 0, z = 0

2013-12-30 17:04:10 1118

原创 uva 669 - Defragment(dfs)

题目链接:uva 669 - Defragment题目大意:磁盘上有n个碎片,给出n个碎片的位置,现在要用最少的步数将所有碎片放回原处,题目一定留出一个空位。解题思路:dfs,如果当前有位置,就把前面的碎片移动到它的目标位置,注意形成环的情况。#include #include const int N = 10005;int n, c, v[N], p

2013-12-29 17:57:15 1230

原创 uva 1533 - Moving Pegs(BFS)

题目链接:uva 1533 - Moving Pegs题目大意:在一个跳棋的棋盘上,有15个位置,如题目中图示,现在给出n,表示第n个位置上的没有棋子,问说最少跳几步可以使的棋盘上的棋子只剩一个,并且位置处于n上,输出跳法,多中的话按照字典序最小输出。解题思路:15个位置,可以用一个二进制数表示状态,然后BFS搜索。优化,如果状态已经入队过,则可不用重复入队。#

2013-12-29 16:14:45 1443

原创 uva 1555 - Garland(递推)

题目链接:uva 1555 - Garland题目大意:给出n和a,求出满足题目给定的四个条件的序列,要求h[n] = b最小。解题思路:根据h[i] = (h[i-1]+h[i+1])/2 - 1可以的出h[i+1] = 2h[i] + 2 - h[i-1], 然后可以得出h[n] = k * h[2] - b,只要维护h[2]保证h均大于等于0且最小即可。#

2013-12-28 21:22:40 1267

原创 uva 1374 - Power Calculus(迭代深搜)

题目链接:uva 1374 - Power Calculus题目大意:给出n,问说至少计算几步得到x^n。解题思路:迭代深搜,枚举步数,然后深搜判断是否可行。需要优化,当当前数s按照最大方案执行后仍然小于n,则说明不可行。#include #include #include const int N = 3005;int aid, tmp, v[N],

2013-12-28 21:17:02 2110 1

原创 uva 1523 - Helicopter(暴力水题)

题目链接:uva 1523 - Helicopter题目大意:有一架直升飞机,可以乘坐8人,现在给出8个人的重量,要安排8个人的位置,要求尽量保持平衡。计算平衡的公式题目中给出。解题思路:总共就8个人,暴力枚举所有坐法,然后维护最小值即可。#include #include #include #include using namespace std;

2013-12-28 14:40:58 1309

原创 uva 817 - According to Bartjens(暴力)

题目链接:uva 817 - According to Bartjens题目大意:给出一个数字,在中间可以任意插入+,-,*使得其变成一个式子(乘号先计算),要求输出式子计算结果为2000的所有情况,按照字典序输出。注意必须要添加计算符,2000=是不可以的。解题思路:因为n不会超过9,所以暴力枚举每个数字后面的字符,复杂度4^8。然后计算表达式的值是否为2000.注意

2013-12-27 22:28:21 1931

原创 uva 654 - Ratio(暴力)

题目链接:uva 654 - Ratio题目大意:给出a和b,找出一个序列,要求分母i由1到b,分子u是所有可能的分子中u/i最接近a/b的,然后将中的一些项删除,保证所u/i是越来越接近a/b的。解题思路:暴力枚举分母i,分子u = i * a /b(四舍五入),然后维护一个标准,保证是接近的。#include #include const double

2013-12-25 23:03:41 1408

原创 uva 656 - Optimal Programs(递归)

题目链接:uva 656 - Optimal Programs题目大意:给出两个序列,要求找出一个函数f(x) = y,xi与yi分别对应两个序列中的第i个元素,输出函数的操作步骤,要求最短,且按照字典序输出。解题思路:递归枚举x0到y0的可能步骤,然后判断其他是否全部满足。#include #include #include using namespa

2013-12-25 22:37:49 1419

原创 uva 812 - Trade on Verweggistan(暴力)

题目连接:uva 812 - Trade on Verweggistan题目大意:给出n个序列,每个序列给出k,表示有k个元素,每行只能从头取,取i(i≤k),现在要在每个序列前取走c[i]个,保证说sum = ∑| 10 - num| (num为所选数的集合)最大,并且输出可以选择的个数,超过10个的话只要输出最小的10个。解题思路:对于每个序列遍历一次,找出最大值和可以

2013-12-25 13:15:35 2774

原创 uva 585 - Triangles(暴力枚举)

题目链接:uva 585 - Triangles题目大意:给出一个倒三角,由若干个小三角形组成,有些三角形为涂上颜色的,问说最大能找出最大的三角形面积。解题思路:枚举每个没有上色的三角形,向一个方向枚举层数,注意坐标为奇数的只能往下,偶数只能往上。#include #include #include using namespace std;const

2013-12-23 23:51:50 1450

原创 fzu 2150 Fire Game(BFS)

题目链接:fzu 2150 Fire Game题目大意:有一块空地上有些草堆‘#’,两个小伙伴想要在这片地上玩耍,然后就要烧掉这些草堆,相邻的草堆可以相互引燃,两个人可以分别选择一块草堆点燃,问说最少需要多少时间才能烧光草堆(每人只能点一次)解题思路:枚举两个位置同时做为起点,然后BFS,注意有一个坑点就是说草堆的个数少于2的时候,枚举不到两个起点,但是是可以烧光草堆的。

2013-12-23 00:03:14 2211

原创 fzu 2144 Shooting Game(贪心区间覆盖)

题目链接:fzu 2144 Shooting Game题目大意:在立体的空间上,有n只蚊子,给出蚊子的坐标,以及蚊子的移动方向(向量的方式给出), 然后人的攻击范围为半径为r的球体。问说人最多可以打几只蚊子,以及需要花多少时间。解题思路:对于每只蚊子计算进入攻击范围的时间和离开攻击范围的时间,注意有可能不进入攻击空间,计算区间可以设一个k然后解方程求出区间,然后对求出的区间

2013-12-23 00:02:48 1632

原创 fzu 2146 Easy Game & 2147 A-B Game & 2151 OOXX Game(水题)

题目链接:fzu 2146 Easy Game 题目连接:fzu 2147 A-B Game题意略。2146#include #include const int N = 10100;const char sign[2][N] = {"Even", "Odd"};int main () { char str[N]; int cas;

2013-12-22 19:08:04 1448

原创 fzu 2148 Moon Game(暴力+几何)

题目链接:fzu 2148 Moon Game题目大意:给出n个点,判断可以组成多少个凸四边形。解题思路:因为n很小,所以直接暴力,判断是否为凸四边形的方法是:如果4个点中存在某个点D,Sabd + Sacd + Sbcd = Sabc,则说明是凹四边形。#include #include #include const int N = 50;struc

2013-12-22 18:59:34 1481

原创 fzu 2140 Forever 0.5(推理)

题目链接:fzu 2140 Forever 0.5题目大意:给出n,要求找出n个点,满足:1)任意两点间的距离不超过1;2)每个点与(0,0)点的距离不超过1;3)有n对点之间的距离刚好为1;4)n个点组成的多边形面积大于0.5;5)n个点组成的多边形面积小于0.75;解题思路:其实题目的样例是由误导性的,只要以原点为顶点,做一个边长为1的等边三角形,然

2013-12-22 18:55:06 1515 1

原创 uva 524 - Prime Ring Problem(dfs)

题目链接:uva 524 - Prime Ring Problem题目大意:给出n,用1-n来组成一个环,要求相邻的两个数之和为素数。解题思路:dfs,注意判断最后一个和第一个数之和也要为素数。#include #include const int N = 50;const int p[N] = {0, 0, 1, 1, 0, 1, 0, 1, 0, 0

2013-12-22 15:33:20 1405

原创 uva 471 - Magic Numbers(搜索)

题目连接:uva 471 - Magic Numbers题目大意:给出一个数n,问有多少组数满足ans / i = n,要求说ans和i为Magic Number,即组成的数字没有重复的。解题思路:因为Magic Number组成的数字互相不想同,所以最大的情况也就9876543210,检索的范围大大减小了。#include #include typede

2013-12-22 15:32:10 1592

原创 uva 10318 - Security Panel(dfs+剪枝)

题目链接:uva 10318 - Security Panel 题目大意:给出r和l,表示r*l个房间,然后给出开关的关联,3*3,每次按了某个房间的开关,以该房间为中心的周围几个房间会受到影响,‘*’表示被影响到。问说最少按几次开关使得所欲房间灯全部亮起。每个房间的开关只能按一次。解题思路:dfs,枚举2^25,每次最优考虑不按的,这样只要有一种结果可以满足,即为最少按的

2013-12-21 22:04:08 1095

原创 uva 1450 - Airport(二分)

题目链接:uva 1450 - Airport题目大意:有一个飞机场,有两条待飞跑到w和e,一条起飞跑道,每一时刻只能起飞一架飞机,然后有w[i]和e[i]架飞机进入w和e跑道,飞机编号从0开始,问说如何安排起飞可以使得飞机编号的最大值最小。解题思路:二分答案,对于每个ans只要遍历一遍判断可否满足即可,要注意的是,如果跑道上没有飞机的话是不能起飞的。#incl

2013-12-21 20:04:52 1580

原创 uva 434 - Matty's Blocks(贪心)

题目链接:uva 434 - Matty's Blocks题目大意:给出前视图和右视图,计算出最少需要几个正方体以及至多可再增加几个正方体。解题思路:和昨天做得一题uva 1445一样的,只是增加了要计算说最多可以放几个正方体,贪心,尽量让大的当着小的。#include #include #include using namespace std;co

2013-12-21 13:18:50 1306

原创 uva 1445 - Cubist Artwork(推理)

题目链接:uva 1445 - Cubist Artwork题目大意:给出一个不规则图形的正视图和左视图,问说最少使用多少个小立方体。、解题思路:很容易想到,如果正视图和左视图有一列刚好高度相等,则可省去一列。#include #include #include using namespace std;const int N = 50;int n,

2013-12-20 20:48:06 1585

原创 uva 1418 - WonderTeam(推理)

题目链接:uva 1418 - WonderTeam题目大意:你支球队进行比赛,每两支队伍之间进行2场比赛,胜得3分,平得1分,输得0分,比赛后挑选出一个梦之队,要求进球总数最多,胜利场数最多,失球总数最多,并且三种都不能与其它对比列第一。问说梦之队的最低可能排名。解题思路:n ≤ 3时ans = 1;n == 4时,ans = 2;n>4时,ans = n.n ≤2的

2013-12-20 13:55:25 2221

原创 uva 11389 - The Bus Driver Problem(贪心)

题目链接:uva 11389 - The Bus Driver Problem题目大意:有n个司机,n条下午路线和n条晚上路线,先在要给每个司机安排一条下午路线和一条晚上路线,如果司机的工作时间超过d,则要按照每小时r元增加加班费,问最少需支付多少加班费。解题思路:贪心,下午最大的搭配晚上最小的,一次类推。#include #include #include

2013-12-20 13:16:19 1811

原创 uva 1344 - Tian Ji -- The Horse Racing(贪心)

题目链接:uva 1344 - Tian Ji -- The Horse Racing题目大意:田季要和齐王赛马,两人各有n只马,然后分别给出田季和齐王的马的速度,赢一场获得200两,输一场失去200两,平局无损失。问田季至多能赢多少。解题思路:贪心,但是用了一个很挫的方法去判断速度相等的情况。#include #include #include usi

2013-12-20 00:33:16 1705

原创 uva 11134 - Fabled Rooks(问题转换+优先队列)

题目链接:uva 11134 - Fabled Rooks题目大意:给出n,表示要在n*n的矩阵上放置n个车,并且保证第i辆车在第i个区间上,每个区间给出左上角和右小角的坐标。另要求任意两个车之间不能互相攻击。解题思路:因为要保证说每两个车之间不能互相攻击,那么即任意行列都不能摆放两个以上的车,转而言之可以看成是将每一行或列分配给每辆车。如果行和列和起来考虑的话复杂

2013-12-18 21:55:44 1252

原创 uva 11627 - Slalom(贪心+二分)

题目链接:uva 11627 - Slalom

2013-12-17 23:55:32 1922

原创 uva 1422 - Processor(二分+优先队列)

题目链接:uva 1422 - Processor题目大意:有一个机器要处理一些问题,给出这些问题可以开始的时间和必须完成的时间,以及任务的工作量,问说机器必须以最少每秒多少得工作量才能完成这些任务。解题思路:二分答案,答案的上限是MaxWork * MaxN(全在一秒内完成)。然后就是判断说在c的工作量小是否能完成任务。因为处理一个问题的时间可以不连续,所以给解题增加了难

2013-12-17 00:25:28 2771

原创 fzu 2138 久违的月赛之一 && 2139 久违的月赛之二

题目链接:2138 久违的月赛之一题目链接:2139 久违的月赛之二题目大意:略。解题思路:一份代码水过两题,注意ans = 0的情况就好了。#include #include using namespace std;int n, num[5], sum;int solve() { sum -= 2 * n; if (sum < 0)

2013-12-16 23:25:30 1337

原创 fzu 2103 Bin & Jing in wonderland(组合数学)

题目连接:fzu 2103 Bin & Jing in wonderland题目大意:给出n,k和r,表示有n种礼物,可以抽取k次礼物,要挑选r个礼物送人。然后给出n种礼物被抽中的概率,以及想要送得礼物序号。注意,抽取礼物之后只能按照礼物的标号从大到小排序后选后r个送人。例如,想要送1,1,2这样的情况,可以抽取4次。那么就只有抽取3个1和1个2的情况才可以,否则抽取两个2的话排序后即

2013-12-14 23:49:53 1633

原创 fzu 1050 Number lengths

题目链接:fzu 1050 Number lengths题目大意:计算n!有多少位数。解题思路:ans = log10(n!) =

2013-12-14 23:38:32 1226

原创 fzu 2112 Tickets(欧拉道路)

题目链接:fzu 2112 Tickets题目大意:给出n和m,表示有n个城市和m张票,现在要进行一场旅行,要求将所有的票使用掉,问还需要自己买几张票。解题思路:欧拉道路的题目,只要输入中出现的城市才需要去考虑它的度数,并且要考虑说两个图是否联通。我的做法是,读入数据的时候,标记出现过的点,并且记录每个点的度数,并查集记录点属于哪一个集合。然后首先保证每个子

2013-12-14 12:09:42 1334

原创 fzu 2111 Min Number(贪心)

题目链接:fzu 2111 Min Number题目大意:给出一个数num,然后可以进行m次交换(即可以交换不同位数上的数),使得新的数越小。(0不能放在第一位)解题思路:贪心,每次把最小的数字换到尽量前的位置,第一位特殊处理。#include #include const int N = 1005;int m;char num[N];void

2013-12-13 18:42:22 1204

原创 fzu 2110 Star(枚举)

题目链接:fzu 2110 Star题目大意:给出若干的点,计算出用这些点可以组成的锐角三角形的个数。解题思路:枚举三个点,然后按照向量相乘大于0作为锐角来考虑。#include #include typedef long long ll;const int N = 105;struct point { ll x, y; void get() {

2013-12-13 18:30:32 1109

原创 fzu 2107 Hua Rong Dao(回溯)

题目链接:fzu 2107 Hua Rong Dao题目大意:给出n(1≤n≤4)然后在一个n * 4的格子上放矩形,必须放一个2*2的(为题目背景下的曹操),然后剩余的位置要用三种矩形拼接。解题思路:先枚举曹操的位置,然后用回溯的方式枚举出所有可能,计算总数。#include #include const int N = 10;const int d

2013-12-13 18:26:07 1154

原创 fzu 2104 Floor problem(水题)

题目链接:fzu 2104 Floor problem题目大意:给出n,l和r, 计算∑(l≤i≤r)floor(n/i).解题思路:直接遍历l到r。#include #include #include int main () { int cas, n, L, R; scanf("%d", &cas); while (cas--) { scan

2013-12-13 18:21:15 1114

原创 fzu 2102 Solve equation(水题)

题目连接:fzu 2102 Solve equation题目大意:给出数a,b和进制bas,a和b都是bas进制的数,现在要计算十进制数k和d ,使得a = k * b + d。解题思路:将a和b转换成十进制数,然后k = a / b, d =a - (a/b) * b.#include #include const int N = 100;int b

2013-12-13 18:17:37 1179

原创 【索引】General Problem Solving Techniques:Examples:Beginner

AOAPC I: Beginning Algorithm Contests -- Training Guide (Rujia Liu)Chapter 1. Algorithm Design::General Problem Solving Techniques:Examples:Beginner11636 - Hello World!11039 - Buildi

2013-12-12 22:12:22 1152

空空如也

空空如也

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

TA关注的人

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