自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

WenOOI的博客

一个不是经常更新的博客

  • 博客(52)
  • 资源 (1)
  • 收藏
  • 关注

原创 POJ3585 Accumulation Degree

提交地址:POJ3585经典的树形DP,二次扫描与换根法思路设D[x] 为以x为根的子树中,把x作为源点,从x发出的流量的最大值,这个很用dfs扫描一次可以得出。然后就是换根了,设F[x]为以x作为整棵树的根是所求的答案可以画一个图理解一下转移if(Deg[Stx] == 1) f[Now] = Val[Now] + Edge[i].Wei; else f[Now] = m...

2018-09-27 20:17:18 298

原创 JZOJ 5781 秘密通道

Description有一副n*m的地图,有n*m块地,每块是下列四种中的一种:墙:用#表示,墙有4个面,分别是前面,后面,左面,右面。起点:用C表示,为主角的起点,是一片空地。终点:用F表示,为主角的目的地,是一片空地。空地:用 . 表示。其中除了墙不能穿过,其他地方都能走。主角有以下3种操作:1.移动到相邻的前后左右的地方,花费一个单位时间。2.向前后左右其中一个...

2018-08-08 20:47:26 474

原创 树形DP(例题)

没有上司的舞会 题目 Ural大学有N个职员,编号为1~N。他们有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。每个职员有一个快乐指数。现在有个周年庆宴会,要求与会职员的快乐指数最大。但是,没有职员愿和直接上司一起与会。 输入描述 Input Description 第一行一个整数N。(1<=N<=6000) 接下来N行...

2018-05-24 17:36:13 451

原创 求10000以内n的阶乘

具体的不用多说,就是高精度乘法,乘来乘去的,答案就出来了。#include<iostream>using namespace std;int Ans[100000];int main() { int n,Lgt = 1; scanf("%d",&n); Ans[1] = 1; for(int i = 2; i<=n; i++) {...

2018-04-30 17:14:23 520

原创 高精度加法

具体原理没什么好说的,模拟,重要的是如何处理最完美。我的有道云上有更完美的版本。#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#include<cstdlib>#include<algorithm>using namesp...

2018-04-30 17:10:20 210

原创 外星密码

【问题描述】 小 W 潜入了外星人的基地刺探情报,遇到一个二级密码系统。一级密码是一个长度为 n 的 0-1 序列 B, 记为(b1 b2 ⋯ bn)。 将一级密码的第一位放到最后,得到一个新的序 列(b2 b3 ⋯ b1), 继续做同样的操作得到(b3 b4 ⋯ b2),如此反复,总共可以得到 n 个序列,将这些序列按字典序排序后,字典序最小的即为二级密码,输入这个...

2018-04-30 16:52:50 1759 4

原创 棋盘(简单模拟)

没有什么好说的,只要注意一下 “%lld” 。#include<iostream>#include<cstring>#include<cstdlib>#include<cstdio>#include<cmath>#include<algorithm>using namespace std;typedef lo...

2018-04-07 15:04:25 1098

转载 (cmath)关于头文件cmath

关于头文件cmath// -*- C++ -*- C forwarding header.// Copyright (C) 1997-2014 Free Software Foundation, Inc.//// This file is part of the GNU ISO C++ Library. This library is free// software; you ca...

2018-04-06 15:46:52 1502

原创 棋盘覆盖(我们学校自己的UOJ上的变形题)

题目#include<iostream>#include<cstring>#include<cstdlib>#include<cstdio>#include<cmath>#include<algorithm>using namespace std;int n,Aix,Aiy,Cnt;int Map[1000...

2018-04-03 17:18:52 255

原创 统计单词数

深刻地体会到一个好的方法可以完美避开所有坑点。#include<iostream>#include<cstring>#include<cstdlib>#include<cstdio>#include<cmath>#include<climits>#include<algorithm>using n

2018-03-29 17:17:04 669

原创 【普及】NOIP2011 瑞士轮

用sort会超时,显而易见。然后想到了归并。至于为什么把运动员分成输与赢两组,我也不是很清楚,也许换种方式分组也行,但是分成输与赢两组更容易分组与合并。#include<iostream>#include<cstring>#include<cstdio>#include<cstdlib>#include<cmath>#i...

2018-03-29 16:38:52 411

原创 树状数组

作用 有一个数组a,下标从0到n-1,现在给你w次修改,q次查询,修改的话是修改数组中某一个元素的值;查询的话是查询数组中任意一个区间的和,w + q < 500000。计算 LowBitint lowbit(x) { return x & -x;} c数组的表示了,c[i]表示从第i个元素向前数lowbit(i)个元素,这一段的和,这...

2018-03-23 21:42:51 149

原创 花生采摘

鲁宾逊先生有一只宠物猴,名叫多多。这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!——熊字”。鲁宾逊先生和多多都很开心,因为花生正是他们的最爱。在告示牌背后,路边真的有一块花生田,花生植株整齐地排列成矩形网格(如图1)。有经验的多多一眼就能看出,每棵花生植株下的花生有多少。为了训练多多的算术,鲁宾逊先生说:“你先找出花生最多的植株,去采摘它的花

2018-03-17 15:44:04 1111

原创 数根

数根描述 数根可以通过把一个数的各个位上的数字加起来得到。如果得到的数是一位数,那么这个数就是数根。如果结果是两位数或者包括更多位的数字,那么再把这些数字加起来。如此进行下去,直到得到是一位数为止。比如,对于24来说,把2和4相加得到6,由于6是一位数,因此6是24的数根。再比如39,把3和9加起来得到12,由于12不是一位数,因此还得把1和2加起来,最后得到3,这是一个一位数,因此3是39的数

2018-03-17 15:39:52 2074

原创 求序列中的众数

描述 输入一个长度为N的整数序列 (不多于128个整数),每个整数的范围在[-1052,1052],计算这个序列的众数。 众数是指出现次数最多的那个数。 如果有多个数出现的次数都达到最多,则取在原序列最先出现的数为众数;如果所有的数都相等,则返回”no”。题目本身没有什么好说的,主要是一些细节问题。比如去掉前导0,但是 不能把 0000000000 去掉为...

2018-03-17 15:37:46 1586 3

原创 Maximum sum

描述 Given a set of n integers: A={a1, a2,…, an}, we define a function d(A) as below: t1 t2 d(A) = max{ ∑ai + ∑aj | 1 i=s1 j=s2 Your ta

2018-01-30 22:40:26 232 1

原创 石子合并

P1880 [NOI1995]石子合并 题目描述 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。 试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分.状态转移方程的定义: dp( l , r ) 的含义是合并l - r这段区间的石子所能获得的最大值,那么,合并

2018-01-20 16:11:40 538

原创 迷宫问题

又多了一篇总结。 迷宫问题 描述 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走

2018-01-20 15:21:56 291

原创 Blah数集

Blah数集 描述 大数学家高斯小时候偶然间发现一种有趣的自然数集合Blah,对于以a为基的集合Ba定义如下: (1) a是集合Ba的基,且a是Ba的第一个元素; (2)如果x在集合Ba中,则2x+1和3x+1也都在集合Ba中; (3)没有其他元素在集合Ba中了。 现在小高斯想知道如果将集合Ba中元素按照升序排列,第N个元素会是多少? 输入 输入包括很多行,每行输入包括两个数字

2018-01-20 15:21:12 4885 2

原创 链表 - 约瑟夫问题

就是简单的链表操作,下面是实例。#include#include#include#include#include#includeusing namespace std;int tot;struct node { int num; node() { num = ++tot; } node *next,*past;};int

2018-01-20 15:20:31 297

原创 FBI树

#include#include#include#include#include#includeusing namespace std;int n;int data[1025];int dg(int l,int r) { if(l == r) { if(!data[l]) { printf("B"); ret

2018-01-20 15:20:10 272

原创 已知两种遍历,求另一种遍历

中序遍历 + 后序遍历 = 先序遍历 a数组保存中序遍历,b数组保存后序遍历 每次都查找根,在后序遍历中查找跟要倒着来,自然因为后序是 左 → 右 → 根 因为先序是根 → 左 → 右,所以先输出根,再递归左子树,再递归右子树。此图转载自他人博客,文末给出链接。 #include#include#include#include#include#incl

2018-01-20 11:50:38 134

原创 查找最接近的元素

查找最接近的元素 描述 在一个非降序列中,查找与给定值最接近的元素。 输入 第一行包含一个整数n,为非降序列长度。1 第二行包含n个整数,为非降序列各元素。所有元素的大小均在0-1,000,000,000之间。 第三行包含一个整数m,为要询问的给定值个数。1 接下来m行,每行一个整数,为要询问最接近元素的给定值。所有给定值的大小均在0-1,000,000

2018-01-08 22:46:14 2172

原创 相似基因

传送门在这里暂且把第一组基因成为组一,第二组基因为组二。 先把f[i][0]初始化:假如都为空,第i个基因的相似度。 组二同理。 为什么要初始化呢? f[i][j]有三个来源,当其来源于f[0][j-1]或f[i-1][0]时,代表了之前的基因什么都不对应相似的最高,可能对应某个基因后相似度反而变小了。假如不初始化,则默认值为0,可造成结果增大,因为本题有负值。 f[i][j]表

2017-12-29 23:03:35 751

原创 导弹拦截

传送门 题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。 输入导弹依次飞来的高度(雷达给出的高度数据是不大于50000的正整数),计算这套系统最多能拦截多少

2017-12-27 16:22:16 225

原创 尼克的任务

传送门 题目描述 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成。 尼克的一个工作日为N分钟,从第一分钟开始到第N分钟结束。当尼克到达单位后他就开始干活。如果在同一时刻有多个任务需要完戍,尼克可以任选其中的一个来做,而其余的则由他的同事完成,反之如果只有一个任务,则该任务必需由尼

2017-12-27 15:57:22 234

原创 atoi 和 atof (把数字字符串转化为数字储存)

int atoi(char *s) 如果字符串内容是整数就返回该整数,否则返回0 double atof(char *s) 同上,不过返回浮点型#include<iostream>#include<cstdlib>using namespace std;int main(){ char ch1[10] = "123456"; int a = atoi(ch1

2017-12-25 22:48:33 253

原创 函数模板

Tmp为用户自定义的名字 template< typename Tmp>适用于所有类型#include<iostream>#include<cstring>#include<cstdlib>#include<cstring>#include<cmath>#include<string>#include<algorithm>using namespace std;template

2017-12-23 21:54:15 133

原创 P1049 装箱问题

装箱问题 题目描述 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30,每个物品有一个体积(正整数)。 要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。 输入格式: 一个整数,表示箱子容量 一个整数,表示有n个物品 接下来n行,分别表示这n 个物品的各自体积 输出格式: 一个整数,表示箱子剩余空间

2017-12-23 15:51:42 513

原创 宿舍里的故事之五子棋

宿舍里的故事之五子棋 描述 宿舍里好多好多有趣的事! 7890653今天看到不知何时流行的五子棋,在宿舍里拿个本子,画一些格子,一个棋盘就做好了! 当7890653把目光放到棋上,突发奇想,呵呵!一个题目就出来了! 在一个 5*5 的棋盘内,放上n颗棋子,其中(5 这n颗棋子可以不同的放到任何一个地方—在棋盘内!于是呼,便会有五颗棋子排成一行, 或一列,或

2017-12-23 14:46:29 469

原创 低价购买

低价购买 总时间限制: 1000ms 内存限制: 65536kB 描述 “低价购买”这条建议是在股票市场取得成功的一半规则。要想被认为是伟大的投资者,你必须遵循以下购买建议:“低价购买,再低价购买”。每次购买一支股票,你必须用比低于你上次购买的价格购买它。买的次数越多越好!你的目标是遵循以上建议的前提下,求你最多能购买股票的次数。你将被给出一段时间内一支股票每天的出售价(2^16

2017-12-19 22:49:02 230

原创 FIFO队列(First In First Out)和优先队列

queue<类型名> q; q.size() — 返回队列中元素个数 q.empty() — 若队列为空,返回true ,否则返回false q.pop() — 删除队首元素,但不返回其值 q.front() — 返回队首元素的值,但不删除(仅适用于FIFO队列) q.back() — 返回队尾元素的值,但不删除(仅适用于FIFO队列) q.top() — 返回具

2017-12-16 20:56:11 2038

原创 后缀表达式

题目描述 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。 如:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.+@。’@’为表达式的结束符号。‘.’为操作数的结束符号。 输入格式: 输入:后缀表达式 输出格式: 输出:表达式的值#incl

2017-12-16 19:38:40 1746

原创 队列安排

题目描述 一个学校里老师要将班上N个同学排成一列,同学被编号为1~N,他采取如下的方法: 1.先将1号同学安排进队列,这时队列中只有他一个人; 2.2~N号同学依次入列,编号为i的同学入列方式为:老师指定编号为i的同学站在编号为1~i -1中某位同学(即之前已经入列的同学)的左边或右边; 3.从队列中去掉M(M#include<iostream>#include<cstri

2017-12-16 19:33:56 807

原创 最大子段和

题目描述 给出一段序列,选出其中连续且非空的一段使得这段和最大。 输入格式: 第一行是一个正整数N,表示了序列的长度。 第2行包含N个绝对值不大于10000的整数A[i],描述了这段序列。 输出格式: 仅包括1个整数,为最大的子段和是多少。子段的最小长度为1。 【数据规模与约定】 对于40%的数据,有N ≤ 2000。 对于100%的数据,有N

2017-12-16 19:29:59 284

原创 约瑟夫问题

题目描述 n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,……依次类推,直到所有的人都出圈,请输出依次出圈人的编号. 输入格式: n m 输出格式: 出圈的编号 说明 m,n≤100数据较小,直接模拟了,应该可以直接用数学推(不确定),推出第几个出局的是第几个人。#include<cstd

2017-12-16 18:51:53 389

原创 读入输出优化

读入输出优化就是用getchar();int read_In() { int a = 0; bool minus = false; char ch = getchar(); while (!(ch == '-' || (ch >= '0' && ch <= '9'))) ch = getchar(); if (ch == '-') { minus = tr

2017-12-12 22:45:24 202

原创 广度优先搜索

广度优先搜索以UOJ上的骑士游历为例 01迷宫

2017-12-09 15:15:40 223

原创 递归

2的幂表示法 任何一个正整数都可以用2的幂次方表示,例如:137=2^7+2^3+2^0。同时约定方次用括号来表示,即ab可表示为a(b)。由此可知,137可表示为: 2(7)+2(3)+2(0) 进一步:7=2^2+2+2^0(21用2表示),3=2+2^0,所以最后137可表示为: 2(2(2)+2+2(0))+2(2+2(0))+2(0) 又如:1315=2^10+

2017-11-15 18:51:05 169

原创 C++封装的全部总结

类 类是对现实生活中一类具有共同特征的事物的抽象 类是面向对象程序设计实现信息封装的基础。 类是一种用户定义类型,也称类类型。 类的实例称为对象。 类的实质是一种数据类型面向对象原则 以对象为中心,以谁做什么来表达程序的逻辑,对象的所以行为都通过调用函数来实现封装 private : 只读属性,不可被外界修改 public :可被外界修改读取内联函数

2017-11-11 21:40:36 714

蜜蜂路线图片

NOIP蜜蜂路线 > 一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你:蜜蜂从蜂房M开始爬到蜂房N,M<N,有多少种爬行路线? > 一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你:蜜蜂从蜂房M开始爬到蜂房N,M<N,有多少种爬行路线? > 一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你:蜜蜂从蜂房M开始爬到蜂房N,M<N,有多少种爬行路线?

2017-09-23

空空如也

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

TA关注的人

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