03 2016 档案

摘要:直接模拟或者KMP 1 #include <iostream> 2 #include <string.h> 3 #include <stdio.h> 4 #include <algorithm> 5 #include <cmath> 6 #include <cstdlib> 7 using name 阅读全文
posted @ 2016-03-30 21:45 yyblues 阅读(205) 评论(0) 推荐(0) 编辑
摘要:思路:x绝对小于根号n,再由s(x,m)可以缩小范围。1e9十六进制大约算出每位和相加100左右。这种题直接判断范围再暴力。 1 #include<stdio.h> 2 #include<string.h> 3 #include<algorithm> 4 #include<cmath> 5 #inc 阅读全文
posted @ 2016-03-30 20:37 yyblues 阅读(281) 评论(0) 推荐(0) 编辑
摘要:题意:给你n个照片,从第一个照片开始看,如果一张照片是'w',那么要花费b时间去反转他,否则不用反转,看一张从来没看过的照片要1时间, 从一张滑动到另一张要a时间。如果一张照片看过,则不用再反转,也不用再傻1s。求在不超过T时间的前提下最多能看多少张。 思路:首先模拟这个选着过程,这里引入两个指针, 阅读全文
posted @ 2016-03-30 15:56 yyblues 阅读(333) 评论(0) 推荐(0) 编辑
摘要:题意:一个圆台,底面和顶面半径分别为R,r,然后高度为H,一共F层,每层高度一样,然后要在每层的天花板上贴方格玻璃,方格玻璃要满足以下几个条件: 方格玻璃面积不能小于S,且方格玻璃要围成一个正多边形,且正好将天花板围住(也就是说天花板的圆面是这个多边形的内接圆),并且要使得贴的玻璃数量尽量少,也就是 阅读全文
posted @ 2016-03-29 18:27 yyblues 阅读(445) 评论(0) 推荐(0) 编辑
摘要:题意:一棵有根树,每个节点都有一个value值和属性(zan或是 CANDLE)。你可以通过反转一些点的属性,反转一个点时候,它的整个子树都会被反转属性。有些点反转消耗代价为X,有些为Y。你的目标的是求zan和candle差的最大值。 思路:dp[i][0]代表zan比candle多的最大值,dp[ 阅读全文
posted @ 2016-03-29 15:07 yyblues 阅读(293) 评论(0) 推荐(0) 编辑
摘要:题意:n条隧道由一些点连接而成,其中每条隧道链接两个连接点。任意两个连接点之间最多只有一条隧道。任务就是在这些连接点中,安装尽量少的太平井和逃生装置,使得不管哪个连接点倒塌,工人都能从其他太平井逃脱,求最少安装数量和方案。 思路:其实本题就相当于在一张无向图中,涂尽量少的黑点,使得任意删除哪个点,每 阅读全文
posted @ 2016-03-28 23:04 yyblues 阅读(290) 评论(0) 推荐(0) 编辑
摘要:题意:就是一个打印分段收费政策,印的越多,单张价格越低,输入需要印刷的数量,求最小印刷费用一个细节就是,比当前还小的状态可能是最后几个。 1 #include<stdio.h> 2 #include<string.h> 3 #include<cstdio> 4 #include<string> 5 阅读全文
posted @ 2016-03-27 22:14 yyblues 阅读(162) 评论(0) 推荐(0) 编辑
摘要:题意:在平面上0,0点,有一个半径为R的圆形区域,并且在0,0点固定着一个半径为RM(<R)的圆形障碍物,现在圆形区域外x,y,有一个半径 为r的,并且速度为vx,vy的硬币,如果硬币碰到了障碍物,将会保持原有的速度向反射的方向继续前进,现在给出R,RM,r,x,y,vx,vy,问硬币的任意部分在圆 阅读全文
posted @ 2016-03-27 21:17 yyblues 阅读(302) 评论(0) 推荐(0) 编辑
摘要:题意:给了一个2*2的魔方..每步操作可以将任意一面翻转90度..现在问在N(<=7)步内.最多能翻出几面相同的. 直接打表模拟每种翻转情况 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostrea 阅读全文
posted @ 2016-03-27 21:08 yyblues 阅读(352) 评论(0) 推荐(0) 编辑
摘要:题意:两点(x1,y1), (x2,y2)的曼哈顿距离=欧几里得距离 也就是:x1=x2或y1=y2,再删除重合点造成的重复计数即可。 1 #include <stdio.h> 2 #include <string.h> 3 #include <iostream> 4 #include <algor 阅读全文
posted @ 2016-03-26 22:07 yyblues 阅读(343) 评论(0) 推荐(0) 编辑
摘要:题意:给你n,m n为有多少人,m为有多少组关系,每组关系代表两人相互憎恨,问有多少个骑士不能参加任何一个会议。 白书算法指南 对于每个双联通分量,若不是二分图,就把里面的节点标记 1 #include <stdio.h> 2 #include <string.h> 3 #include <iost 阅读全文
posted @ 2016-03-26 00:15 yyblues 阅读(214) 评论(0) 推荐(0) 编辑
摘要:参考算法指南白书P316 1 #include <stdio.h> 2 #include <string.h> 3 #include <iostream> 4 #include <algorithm> 5 #include <vector> 6 #include <queue> 7 #include 阅读全文
posted @ 2016-03-25 21:47 yyblues 阅读(239) 评论(0) 推荐(0) 编辑
摘要:算法指南白书 思路:“连续和转化成前缀和之差” 阅读全文
posted @ 2016-03-24 13:36 yyblues 阅读(259) 评论(0) 推荐(0) 编辑
摘要:算法指南 主要就是建立欧拉回路 阅读全文
posted @ 2016-03-23 22:28 yyblues 阅读(204) 评论(0) 推荐(0) 编辑
摘要:算法指南白书 维护一个四维数组,走一步更新一步 阅读全文
posted @ 2016-03-23 20:39 yyblues 阅读(216) 评论(0) 推荐(0) 编辑
摘要:算法指南白书 分别求一次人和火到达各个点的最短时间 阅读全文
posted @ 2016-03-23 20:04 yyblues 阅读(203) 评论(0) 推荐(0) 编辑
摘要:推荐一个写数独很好的博客:http://www.cnblogs.com/grenet/p/3163550.html 主要是把九宫格里的元素换到矩阵里面再求解dancing links 网上找的一模版 阅读全文
posted @ 2016-03-23 14:57 yyblues 阅读(219) 评论(0) 推荐(0) 编辑
摘要:例如斐波那契数列用滚动数组优化 阅读全文
posted @ 2016-03-22 22:56 yyblues 阅读(409) 评论(0) 推荐(0) 编辑
摘要:题意:农夫约翰想修一条尽量平缓的路,路的每一段海拔是A[i],修理后是B[i],花费|A[i] – B[i]|,求最小花费。(数据有问题,代码只是单调递增的情况) 阅读全文
posted @ 2016-03-22 22:28 yyblues 阅读(235) 评论(0) 推荐(0) 编辑
摘要:题意:奶牛Bessie在0~N时间段产奶。农夫约翰有M个时间段可以挤奶,时间段f,t内Bessie能挤到的牛奶量e。奶牛产奶后需要休息R小时才能继续下一次产奶,求Bessie最大的挤奶量。 详见代码 阅读全文
posted @ 2016-03-21 15:40 yyblues 阅读(272) 评论(0) 推荐(0) 编辑
摘要:题意:在[a,b] [c,d] 之间,和模p等于m的对数 详见代码 阅读全文
posted @ 2016-03-20 16:47 yyblues 阅读(195) 评论(0) 推荐(0) 编辑
摘要:1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 double a; 7 char s[100]; 8 int fun(char s[]) { 9 if(strcmp(s,"B]") == 0)return 0; 10 if(strcmp(s,"KB]") == 0)... 阅读全文
posted @ 2016-03-20 16:42 yyblues 阅读(144) 评论(0) 推荐(0) 编辑
摘要:题意:问生成树里能不能有符合菲波那切数的白边数量 思路:白边 黑边各优先排序求最小生成树,并统计白边在两种情况下数目,最后判断这个区间就可以。注意最初不连通就不行。 阅读全文
posted @ 2016-03-20 16:40 yyblues 阅读(254) 评论(0) 推荐(0) 编辑
摘要:题意:找元素关于对角线左或右对称的最大矩阵 思路:左右对角线只需要遍历一条就可以了。只要当前点往上遍历和往后遍历一样就可以。 阅读全文
posted @ 2016-03-20 00:05 yyblues 阅读(221) 评论(0) 推荐(0) 编辑
摘要:详见代码 阅读全文
posted @ 2016-03-19 09:40 yyblues 阅读(171) 评论(0) 推荐(0) 编辑
摘要:详见代码 阅读全文
posted @ 2016-03-18 23:31 yyblues 阅读(237) 评论(0) 推荐(0) 编辑
摘要:最长公共自序列LIS 三种模板,但是邝斌写的好像这题过不了 N*N N*logn 没有AC 阅读全文
posted @ 2016-03-17 22:19 yyblues 阅读(166) 评论(0) 推荐(0) 编辑
摘要:思路:Jimmy 跳到一块板上后,可以有两种选择,向左走或向右走。走到左端和走到右端所需的时间,容易算出。 n如果我们能知道,以左端为起点到达地面的最短时间,和以右端为起点到达地面的最短时间,那么向左走还是向右走,就很容选择了。 阅读全文
posted @ 2016-03-17 18:11 yyblues 阅读(176) 评论(0) 推荐(0) 编辑
摘要:LCS 阅读全文
posted @ 2016-03-17 11:21 yyblues 阅读(238) 评论(0) 推荐(0) 编辑
摘要:题意: 在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定。陪审团是由法官从公众中挑选的。先随机挑选n个人作为陪审团的候选人,然后再从这n个人中选m人组成陪审团。选m人的办法是:控方和辩方会根据对候选人的喜欢程度,给所有候选人打分,分值从0到20。为了公平起见,法官选出陪审团的原则是:选出的m个人 阅读全文
posted @ 2016-03-16 23:14 yyblues 阅读(548) 评论(0) 推荐(0) 编辑
摘要:题意:要求找到的体重递增,速度递减的老鼠,并且输出最长的长度数,而且输出各自的序列数。Special Judge 思路:先按体重由小到大排序,再找最长速度递减序列。 转移方程:mou[i].w>mou[j].w&&mou[i].s<mou[j].s&&dp[j]+1>dp[i] 阅读全文
posted @ 2016-03-16 14:32 yyblues 阅读(316) 评论(0) 推荐(0) 编辑
摘要:题意: 光滑平面,一个刚性小球,一个固定的刚性圆柱体 ,给定圆柱体圆心坐标,半径 ,小球起点坐标,起始运动方向(向量) ,终点坐标 ,问能否到达终点,小球运动中如果碰到圆柱体会反射。 学到了向量模板,写法简洁。 阅读全文
posted @ 2016-03-15 23:29 yyblues 阅读(449) 评论(1) 推荐(0) 编辑
摘要:划分树:查询区间第K大 还有另外一种模板,记录比当前元素还小的元素和。   阅读全文
posted @ 2016-03-14 21:36 yyblues 阅读(240) 评论(0) 推荐(0) 编辑
摘要:http://acm.nyist.net/JudgeOnline/problem.php?pid=28 连乘 1 import java.io.*; 2 import java.math.BigInteger; 3 import java.util.*; 4 5 6 public class Mai 阅读全文
posted @ 2016-03-11 22:43 yyblues 阅读(205) 评论(0) 推荐(0) 编辑
摘要:题意:国王有n个儿子,现在这n个儿子要在n个女孩里选择自己喜欢的,有的儿子可能喜欢多个,最后国王的向导给出他一个匹配。匹配有n个数,代表某个儿子和哪个女孩可以结婚。已知这些条件,要你找出每个儿子可以和哪些女孩结婚 思路:求强联通分量。同时练习一下输入输出外挂可以减少时间 1 #include<cst 阅读全文
posted @ 2016-03-10 11:05 yyblues 阅读(233) 评论(0) 推荐(0) 编辑
摘要:题意:后一个比前一个大就加一,问最大次数。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostream> 5 #include<cstdlib> 6 #include<string> 7 #incl 阅读全文
posted @ 2016-03-07 23:31 yyblues 阅读(280) 评论(0) 推荐(0) 编辑
摘要:题意:一个小男孩要上楼梯,他一次可以走1个台阶或2个台阶或3个台阶,但是有一些台阶是脏的,他不想走在脏台阶上。一共有n个台阶和m个脏台阶,他最开始在第1个台阶上,要走到第n个台阶。问小男孩能不能不踩到脏台阶的前提下走到n个台阶。 思路:对于给定的m个脏序列,先排序后,没有连续的三个数就行。 1 #i 阅读全文
posted @ 2016-03-04 23:25 yyblues 阅读(278) 评论(0) 推荐(0) 编辑
摘要:题意:有n个数,这些数的范围是[1,n],并且每个数都是不相同的。你需要构造一个排列,使得这个排列上的数与它所在位置的序号的最大公约数满足 > 1,并且这些数的个数恰好满足k个,输出这样的一个排列。 思路:只需要后k个数与下标一样,前n-k个数逆序输出就复合题意。 1 #include<cstdio 阅读全文
posted @ 2016-03-04 23:22 yyblues 阅读(237) 评论(0) 推荐(0) 编辑
摘要:枚举长度最短的字符串的所有子串,再与其他串匹配。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostream> 5 #include<cstdlib> 6 #include<string> 7 #i 阅读全文
posted @ 2016-03-04 23:17 yyblues 阅读(213) 评论(0) 推荐(0) 编辑
摘要:最长回文串模板题 Manacher 算法 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostream> 5 #include<cstdlib> 6 #include<string> 7 #inclu 阅读全文
posted @ 2016-03-04 23:15 yyblues 阅读(189) 评论(0) 推荐(0) 编辑
摘要:题意: 给你2*n的矩阵 然后定义一个函数f(a,l,r)表示a数组在l到r的或值 然后让你找到一对l,r,使得f(a,l,r)+f(b,l,r)最大 思路: 直接或所有数 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 阅读全文
posted @ 2016-03-04 23:12 yyblues 阅读(214) 评论(0) 推荐(0) 编辑
摘要:题意: 给你一个n*m一开始全是0的矩阵,然后又q次询问 每次询问给你三个字母 op,a,b 将第a行变成b 将第a列变成b 然后让你输出Q次询问后,这个矩阵长什么模样 思路:每个格子记录两个状态,区分横竖。 1 #include<cstdio> 2 #include<cstring> 3 #inc 阅读全文
posted @ 2016-03-04 23:10 yyblues 阅读(284) 评论(0) 推荐(0) 编辑
摘要:典型的两道矩阵快速幂求斐波那契数列 POJ 那是 默认a=0,b=1 UVA 一般情况是 斐波那契f(n)=(n-1)次幂情况下的(ans.m[0][0] * b + ans.m[0][1] * a); 1 //POJ 2 #include <cstdio> 3 #include <iostream 阅读全文
posted @ 2016-03-03 20:45 yyblues 阅读(219) 评论(0) 推荐(0) 编辑
摘要:题意: 外祖母要卖苹果,(有很多但不知道数量),最终所有苹果都卖光了! 有n个人买苹果,如果那个人是half,他就买所有苹果的一半,如果那个人是halfplus,则他买当前苹果数量的一半,Laura还会送半个苹果!问最多能赚多少钱? 思路: 会后一个人一定是halfplus,否则苹果卖不完,所以最后 阅读全文
posted @ 2016-03-02 14:02 yyblues 阅读(271) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示