自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 wikioi 1048 石子归并

http://wikioi.com/problem/1048/有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合并相邻的两堆石子,一次合并的代价为两堆石子的重量和w[i]+w[i+1]。问安排怎样的合并顺序,能够使得总合并代价达到最小。经典动归,(不能用贪心局部最优不代表全局最优)合成一个新状态必定是原来2个状态来的#include#includeusing

2013-12-06 21:46:20 502

原创 wikioi 1047 邮票面值设计

http://wikioi.com/problem/1047/同样感触很深的一道题,之前打表,后来自己写了一遍具体就是用深搜找方案,用dp判断一道很经典的dfs套dp,但是程序很多地方还需优化void dfs(int num,int tk,int m)//当前数值,种数,估计能构成的最大值{if(tk==k)//用到了第k种{int cnt=check(m,tk);检查

2013-12-06 21:43:31 837

原创 wikioi 1046 旅行家的预算

http://wikioi.com/problem/1046/这道题感触很深,国庆前完全不敢动,之后一天状态来了就过了一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的)。给定两个城市之间的距离D1、汽车油箱的容量C(以升为单位)、每升汽油能行驶的距离D2、出发点每升汽油价格P和沿途油站数N(N可以为零),油站i离出发点的距离Di、每升汽油价格Pi(i=1

2013-12-06 21:40:24 803

原创 wikioi 1045 回文数

http://wikioi.com/problem/1045/其实就是道模拟题,按题意来就行了,想想哪些地方可以优化#include#include#include#includeusing namespace std;char a[1000];int s1[1000];int s2[1000];int s[1000];int m;int step=0;int l;

2013-12-06 21:30:07 595

原创 wikioi 1044 拦截导弹

http://wikioi.com/problem/1044/但是以后每一发炮弹都不能高于前一发的高度这句话其实是提示,第一个问题就是正向一边lis,第二个问题其实可以发现如果之后有比前面高的必然要多一套,因此可以倒着来一遍lis#includeint ans=0;int d[30];int b[30];int dd[30];int rear=0;int cnt=2

2013-12-06 21:25:42 487

原创 wikioi 1043 方格取数

http://wikioi.com/problem/1043/当时写了2个dp分别,结果发现第一次最优不保证第二次最优所以用一个dp,同时走dp[i][j][k][l]=maxdp(dp[i-1][j][k-1][l],dp[i-1][j][k][l-1],dp[i][j-1][k-1][l],dp[i][j-1][k][l-1]);到第一个取i,j这格,和第二个去k,l这格是由上

2013-12-06 21:09:40 510

原创 wikioi 1042 进制转换

http://wikioi.com/problem/1042/负进制(什么*****) int m=n; int k=0; int s; while(m!=0) { s=m/b; a[k]=m%b; if(m0&&a[k]!=0)//这时a[k]会变为负数

2013-12-06 21:00:02 619

原创 wikioi 1041 Car的旅行路线

http://wikioi.com/problem/1041/建图是关键机场通过铁路,城市有4个机场可以到达,可以出发(告诉3个点有多个情况:1,2为对角,1,3为对角,2,3为对角)#include#include#include#include#includeusing namespace std;double map[110][5][110][5];//i的k1到j

2013-12-06 20:53:37 629

原创 wikioi 1040 统计单词个数

http://wikioi.com/problem/1040/字符串的题一向这么恶心.就是到划分型dp#include#include#includeusing namespace std;int word[201][201], dp[201][201][41];char c[21], w[6][10], c0[201], c1[201];int d, p, k,

2013-12-06 20:39:59 578

原创 wikioi 1039 数的划分

http://wikioi.com/problem/1039/这道dp很不错(题解中有背包做法)一个整数划分成k份且k>=2必定有一种方法中有1,分开这个1,另外的都是大于2的,这时都减1,于是又会出现分出1if(i>=j) dp[i][j]=dp[i-j][j]+dp[i-1][j-1];得到关系式#includeint n,k;int dp[210][10]={0}

2013-12-05 22:09:03 543

原创 wikioi 1038 一元三次方程求解

http://wikioi.com/problem/1038/提示:记方程f(x)=0,若存在2个数x1和x2,且x1,f(x1)*f(x2),则在(x1,x2)之间一定有一个 根。题目给了方法,正统二分(交了7次,二分真tm难)void find(double bit,double top,bool f1,bool f2){if(top-bit<0.01) {prin

2013-12-05 21:58:36 674

原创 wikioi 1037 取数游戏

http://wikioi.com/problem/1037/    有一个有趣得取数游戏。初始时,给出一个环,环上得每条边上都有一个非负整数。这些整数中至少有一个时0。然后,将一枚硬币放在环上得一个节点上。二个玩家就是以这个放硬币得节点为起点开始这个游戏,二人轮流取数,取数得规则如下:    (1)选择硬币左边或右边得一条边,并且边上得数非0;    (2)将这条边上

2013-12-05 21:51:35 751

原创 wikioi 1036 商务旅行

http://wikioi.com/problem/1036/由于n-1边连接n个点,所以不存在路径选择的问题,只能有一条路而找2个点的距离就找到公共祖先的距离之和#include#include#include#include#include#includeusing namespace std;int n,m;struct edge{ int v,next,w;

2013-12-05 21:31:45 689

原创 wikioi 1029 遍历问题

http://wikioi.com/problem/1029/如果直接求个数,你可以先建立一棵树,然后寻找即可。但是这个方法复杂度高,空间高,编程长度长。所以不建议使用这种方法对于树的基础概念感觉很多不理解,先序就是先遍历根,接着左边,最后右边,中序中间遍历根,后序最后遍历根这两个中一定有子序列是相同的a[i+1]==b[j-1]如果这个成立,相当于有构

2013-12-04 21:57:41 607

原创 wikioi 1027 姓名与ID

http://wikioi.com/problem/1027/恶心的字符串!!!一道二分图匹配第一行是整数N,表示N个人,N接下来的一行是N个人的ID,用一个空格分隔。接下来的若干行是过程的记录:一个字母和一个字符串。字母是E、L或M中的一个。E表示进入房间,后面跟的字符串表示进来的人的姓名;L表示离开房间,后面跟的字符串表示离开的人的姓名;M表示回答询问,后面

2013-12-04 21:45:05 641

原创 wikioi 1026 逃跑的拉尔夫

http://wikioi.com/problem/1026/拉尔夫所开小车的初始位置用字符的“*”表示,且汽车能从初始位置通过。汽车能向四个方向移动:向北(向上),向南(向下),向西(向左),向东(向右)。拉尔夫所开小车的行动路线是通过一组给定的方向来描述的。在每个给定的方向,拉尔夫驾驶小车通过小镇上一个或更多的可行车地点。输出文件应包含用R行表示的小镇的地图

2013-12-04 21:34:35 862

原创 wikioi 1025 选菜

http://wikioi.com/problem/1025/首先一定要买的是必选菜对于同一种菜(无论是不是必选菜),小松最多只会选择1份于是关键在判断#include#include#include#include#includeusing namespace std;int n,k;int x;int dp[1010];int is[110];int v

2013-12-03 21:57:33 559

原创 wikioi 1023 GPA计算

http://wikioi.com/problem/1023/ 关键就是这个算式的理解#include#include#include#include#includeusing namespace std;int n;double a,b;int main(){ cin>>n; double t1=0.0,t2=0.0; for(int i=1;i<=n;i++)

2013-12-03 21:51:08 587

原创 wikioi 1022 覆盖

http://wikioi.com/problem/1022/一道二分图匹配,关键在于怎么建边,由题覆盖的为2个相连的陆地,我们可以看作是一块陆地和另一块陆地进行了匹配于是就可以找到一个陆地,把这和四周的陆地进行加边,接下来就是匹配了#include#include#include#include#includeusing namespace std;const int ma

2013-12-03 21:48:38 558

原创 wikioi 1021 玛丽卡

http://wikioi.com/problem/1021/根据题意,即求在删去任意一条边后的最小值中的最大值枚举删哪条边肯定会超时,这是就需要优化假设我们在没删除边时得到一组最短路路径,那么在删除路径以外的边不会改变最短路径也就不会改变答案了于是我们只需要先一次最短路记录下此时的路径,在枚举删除边就行了#include#include#include#include

2013-12-03 21:40:19 517

原创 wikioi 1020 孪生蜘蛛

http://wikioi.com/problem/1020/无下限的坑啊题目要求选择两个点,使从任意一点到这两个点中的一个距离最小首先注意“通道数目”是点数不是边数……读边的时候记的用EOF用floyd计算每两点间的距离然后三层for枚举两只蜘蛛在哪两个点,以及蛾子在哪个点,找最大值的最小值#include#include#include

2013-12-01 22:11:20 729

原创 wikioi 1018 单词接龙 提高组 2000

http://wikioi.com/problem/1018/又是字符串(10次才过我容易么 = =)用搜索(数据小)枚举每种情况#include#include#include#include#include#includeusing namespace std;int n;char s[20+10][200+10];int vis[20+10];int con[

2013-12-01 22:07:41 694

原创 wikioi 1017 乘积最大 普及组 2000

http://wikioi.com/problem/1017/设有一个长度为N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积能够为最大。 同时,为了帮助选手能够正确理解题意,主持人还举了如下的一个例子: 有一个数字串:312, 当N=3,K=1时会有以下两种分法: 1)  3*12=36

2013-12-01 22:00:43 523

原创 wikioi 1016 税收与补贴 普及组 2000

http://wikioi.com/problem/1016/    每样商品的价格越低,其销量就会相应增大。现已知某种商品的成本及其在若干价位上的销量(产品不会低于成本销售),并假设相邻价位间销量的变化是线性的且在价格高于给定的最高价位后,销量以某固定数值递减。(我们假设价格及销售量都是整数)     对于某些特殊商品,不可能完全由市场去调节其价格。这时候就需要政府以

2013-12-01 21:55:35 1406

原创 wikioi 1015 计算器的改良 普及组 2000

http://wikioi.com/problem/1015/这种题真恶心。(字符串的处理= =)解一元一次方程及化为k=ax,从而可以解得x=k/a,所以要找系数和和常数项和贴上数据 20+3x=-18-6+12x=047-2=6y+3-25a+18-2=-7a-2-a+1a-3=a-3 自己手算把#include#include#include#

2013-11-29 22:11:59 727

原创 wikioi 1014 装箱问题 普及组 2001

http://wikioi.com/problem/1014/有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小(及装的最大)。很裸的一道背包dp(这个关于具体也说不清)#include#include#includeusing nam

2013-11-29 21:41:47 523

原创 wikioi 1013 求先序排列 普及组 2001

http://wikioi.com/problem/1013/给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度)。前序遍历的规律是:输出根结点,输出左子树,输出右子树; 中序遍历的规律是:输出左子树,输出根结点,输出右子树;后序遍历的规律是:输出左子树,输出右子树,输出根结点;

2013-11-29 21:39:11 995

原创 wikioi 1012 最大公约数和最小公倍数 普及组 2001

http://wikioi.com/problem/1012/输入二个正整数x0,y0(2条件:  1.P,Q是正整数2.要求P,Q以x0为最大公约数,以y0为最小公倍数.试求:满足条件的所有可能的两个正整数的个数.方法就是求满足要求的个数(求最大公约数和最小公倍数)之前写了个暴力算法#include#includeint x,y;int

2013-11-29 21:28:08 488

原创 wikioi 1011 数的计算 普及组 2001

http://wikioi.com/problem/1011/我们要求找出具有下列性质数的个数(包含输入的自然数n):先输入一个自然数n(n1.          不作任何处理;2.          在它的左边加上一个自然数,但该自然数不能超过原数(右边第一个数)的一半;3.          加上数后,继续按此规则进行处理,直到不能再加自然数为止.

2013-11-29 21:12:56 624

原创 wikioi 1010 过河卒 普及组 2002

如图,A 点有一个过河卒,需要走到目标 B 点。卒行走规则:可以向下、或者向右。同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点。例如上图 C 点上的马可以控制 9 个点(图中的P1,P2 … P8 和 C)。卒不能通过对方马的控制点。  棋盘用坐标表示,A 点(0,0)、B 点(n,m)(n,m 为不超过 20 的整数,并由键盘

2013-11-29 21:06:35 482

原创 wikioi 1009 产生数 普及组 2002

http://wikioi.com/problem/1009/给出一个整数 n(n  规则:   一位数可变换成另一个一位数:   规则的右部不能为零。  例如:n=234。有规则(k=2):    2-> 5    3-> 6  上面的整数 234 经过变换后可能产生出的整数为(包括原数):   234   534   264   564  共

2013-11-29 21:00:47 584

原创 wikioi 1008 选数 普及组 2002

http://wikioi.com/problem/1008/已知 n 个整数 x1,x2,…,xn,以及一个整数 k(k<n)。从 n 个整数中任选 k 个整数相加,可分别得到一系列的和。例如当 n=4,k=3,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和为:    3+7+12=22  3+7+19=29  7+12+19=38  3+12+19=34。 

2013-11-29 20:52:37 528

原创 wikioi 1007 级数求和 普及组 2002

水题不解释啊#include#include#include#includeusing namespace std;int n,k;int main(){ scanf("%d",&k); double ans=0.0; for(int i=1;;i++) { ans=ans+1.0/i; if(ans>k

2013-11-29 20:46:16 966

原创 wikioi 1006 等差数列

这道题感觉朴素点就行了,不必想的太复杂(枚举最后#include#include#includeusing namespace std;int n;int w[110];int dp[110][110];int ml=1;int main(){ cin>>n; for(int i=1;i>w[i]; sort(w+1,w+n+1); for(int i = 1 ; i <

2013-11-27 22:03:20 608

原创 wikioi 1004 四子连棋

http://wikioi.com/problem/1004/观察●○● ○●○●●○●○○●○ 可知4*4的棋盘对应有c(7,16)*c(7,9)个状态,这种复杂度搜索可以接受(当时写了这道题感觉搜索上了一个台阶)状态的定义可以转化为3进制来保存,之后就是搜了注意黑白双

2013-11-27 21:57:11 687

原创 wikioi 1002 搭桥

http://wikioi.com/problem/1002/这是道最小生成树(找边的边数和边权和),即建立边合并点(加入一个并查集,因为2个点的边都会被用到)时及2个x,y的差的值都小于等于1,注意建边(x,y相等时或相差为1都是可以建边的,边权为另一个的差值)#include#include#include#include#includeusing namespace

2013-11-27 21:44:49 681

原创 wikioi 1001 舒适的路线

http://wikioi.com/problem/1001/问题是求最大速度和最小速度的比(边权),用最小生成树(第一加的即为最大,最后的即为最小)。然后我们就可以用枚举出每种最小生成树(这里应该可以优化)#include#include#include#include#include#includeusing namespace std;int n,m;int k=1;

2013-11-27 21:34:43 697

原创 wikioi 1000 A+B

http://wikioi.com/problem/1000/#includeusing namespace std;int a,b;int inf=0x3f3f3f3f;int main(){ cin>>a>>b; for(int i=1;i<=2*inf;i++)a=a*1; cout<<a+b;}首先是A+B问题 ,既然是问题,说明A,B,+都

2013-11-27 21:28:25 485

原创 noip2013之路(下)

7.9号可以说是一个转折,大家都放假的日子,进入43班的蒟蒻,被无情的留了下来。(这是下定决心,要学好奥赛,争取Noip,不为别的,就为的是给17岁的生日送上一份礼物)。当时的蒟蒻(虽然现在还是),什么都不懂,从wikioi的天梯,像重新开始一样。从入门菜鸟到普及一等,到提高,记得帮助最大的就是那几道dp,终于不会逢dp就挂了。以及几道高精(虽然都是照网上抄的),还有搜索。当时不去rq是因为那

2013-11-25 21:44:12 546

原创 noip2013之路(上)

记得当时报竞赛时的各种忐忑(经历了自主招生考试的失败,其他的竞赛没有了勇气),也许这就是一份缘分吧。当时看到那试题就笑了,小学时候看过这些感觉无压力,剩下的就是年级前1000名(当时目标就是这么简单)。        之后就理所当然的走进了5楼的机房。之前对信息技术奥赛一无所知,只是知道什么c语言,vb的蒟蒻,毫无一点基础。记得那时竞赛人非常的多,满满一个教室,但之后就一点点的减少了

2013-11-25 21:13:24 529

空空如也

空空如也

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

TA关注的人

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