自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ONE MORE TRY

把该做的做好就好了!

  • 博客(821)
  • 问答 (2)
  • 收藏
  • 关注

原创 CodeForces 828C【构造】

题意:给你N个串,然后给出每个串在所求串的起始位置,让你求这个串,并且保证字典序最小。思路:读完题发现!怎么那么简单??? 我想的就是对每个位置记录以该位置为起点的最长串,记录输入ID和长度。 然后队友说你串怎么存啊? String啊??? 会超时么??? 不知道… 然后具体写的时候,发现在构造的时候,比如(以该位置为起点的最长串的长度): 46 代表第0位置起始是4长度,到了

2017-07-13 09:29:30 377

原创 POJ3349【手写Hash】

基础题。 利用邻接表,价值hash值为数组head[]的下标,然后在该链下寻找。//#include <bits/stdc++.h>#include<iostream>#include<cstdio>#include<cstring>#include<string.h>#include<queue>#include<cmath>#include<algorithm>using na

2017-07-08 01:51:28 612

原创 求<=N的平方数

考试的最后一题。。又是数学题。。。(又是宛如智障) x2+y2=z2x^2 + y^2 = z^2 可以有: x=a2−b2 x = a^2 - b^2 y=2ab y = 2ab z=a2+b2 z = a^2 + b^2 然后直接预处理 = = 、 哎!;#include <bits/stdc++.h>using namespace std;typedef pair<int,i

2017-07-08 00:53:30 602

原创 UVA6284【状态前缀异或+hash】

题意: 给一个字符串,问有多少个区间能构成回文串。 构成要求只要满足存在所有种类字符数量相等,或者只存在一种的个数是奇数。 思路: 由于字符比较少,考虑 2522^{52} 状压,long long 还是吃的消的。 然后一直加入状态, 先检查这个状态是否满足。我们可以看到对于状态(单纯考虑4位): 1 1 1 0 如何从他割掉一些状态达到满足,可以看到有1 0 0 0这个是吧,

2017-07-06 02:17:21 502

原创 HDU4585【树状数组/STL】

题意: 有n+1个僧侣,然后1号已经在塔里了,能力值是1e9,现在依次给你两个数, 第一个代表标号,第二个代表能力值,每次挑一个在塔里的能力最接近的跟她打,如果能力相同的取小,然后把它扔进塔里 每次输出两个标号,一个旧的,一个新的。思路: 当时就感觉很水,所以做着做着就… 变成了,离散化能力值,然后利用树状数组维护,然后二分查找值的最近点…【确实麻烦了】 ++: 1. 前缀和寻找比 x

2017-07-05 09:52:10 437

转载 POJ2887【块状链表】

参考自: http://www.cnblogs.com/d-e-v-i-l/p/5721288.html 块状链表的应用:字符串最长 Max_length=import_string_length+option_time;Max\_length = import\_string\_length + option\_time; (输入字符串长度 + 操作数) 分成 (Max_Length)−−−

2017-07-02 20:07:13 487

原创 SPOJ3267【莫队算法/】

题意: 求区间不同数的个数。 思路: 离线处理(莫队/分块)#include <bits/stdc++.h>using namespace std;typedef long long LL;typedef pair<LL,LL>PII;const int N=2e5+10;int n,q;int a[N];int tim[N];struct asd{ int Left,Ri

2017-07-02 16:58:03 438

原创 CodeForces820B【set.lower_bound】

… 水题 强行用一下 iterator set::lower_bound(val): 返回第一个关键字的值是大于等于给定值的定位器。 细节处理越界: end()题意: n变形,求三个点组成角,最接近角的三点。 思路: 正n边形每个内角的度数公式: (n-2)*180/n 正n边形最小角的度数公式:(n-2)*180/n/(1+n-3)=180/n当n>180时,有

2017-07-02 11:06:07 462

转载 CodeForces301D 【BIT】

转自:http://www.cnblogs.com/oyking/archive/2013/08/14/3256922.html 题意: 给你n个数,求区间有多少对除数和被除数的对数思路: 线段树 区间和/ 树状数组 前缀和 2e5的数的除数最多才81个 对于一个数的贡献,我最好是区间的贡献,也就是1-n的贡献。Sum[pos]: 1到POS的对数。 对于区间[L,R],如果简单考虑 S

2017-07-01 23:18:21 357

原创 【计算机组成原理】第4章 指令系统

4.1 指令系统的发展与性能需求4.1.1指令系统的发展程序:计算机的程序是由一系列的机器指令组成的。 指令就是计算机执行某种操作的命令。 这里某种操作???其实很有意思啊 20世纪50年代,所支持的指令系统只有定点加减,逻辑运算、数据传送、转移等十几至几十条指令。 60年代后期,除以上基本指令,还设置了乘除运算、浮点运算、十进制运算、字符串处理,指令数目多达几百条,寻址方式也趋多

2017-06-03 00:52:51 3468 1

原创 【计算机组成原理】第5章 中央处理器

5.1.1 CPU的功能程序是一个指令序列,这个序列明确告诉计算机应该执行什么操作,在什么地方找到用来操作的数据。一旦程序进入内存储器,就可以由计算部件来自动完成取指令和执行指令,而CPU就是执行这样的功能。CPU的四大基本功能: 指令控制、操作控制、时间控制、数据加工1.指令控制保证程序按顺序执行程序。2.操作控制程序是一个指令序列,一条指令的功能往往由若干个操作信号的组合来实现。因此,CPU

2017-06-01 22:49:37 4554 5

原创 【计算机组成原理】第3章 多层次的存储器

3.1 存储器概述第一节掌握以后可以作为谈资!3.1.1存储器的分类什么是存储器啊?干嘛用的啊? 顾名思义一下好不好啊?存储的呗->文绉绉一点->计算机系统中的记忆设备啊,存放程序和数据。接下来呢? 根据存储材料的性能及使用方法不同: 分个类吧!1).存储介质:我们知道计算机采用二进制,所以存储介质的基本要求:①有两种明显的物理状态,来表示0和1;②:我要快,存取速度(涉及到性能,在下文中主存

2017-05-31 21:55:10 4163 1

原创 数据库系统概论期末考试卷【详解】

声明:以下内容有些概念会模糊,有些概念可能会错误!希望指正!也希望读者能带着严谨的态度看【害怕】数据库系统概述()数据库的4个基本概念()1.数据 2.数据库 3.数据库管理系统 4.数据库系统数据库系统的特点()1.数据结构化 2.数据的共享性高、冗余度低且易扩充 3.数据独立性高数据模型()两类数据模型()1.第一类概念模型 2.第二类逻辑模型和物理模型数据模型的组成要素()1.数据

2017-05-31 13:53:56 30407 6

原创 AC自动机萌新讲解

刚刚拿到一道就是简单的多模式串匹配,心想“噫.AC自动机么……我怎么不会啊” 所以自己瞎扯一点+书(《ACM-ICPC程序设计系列-算法设计与实现》)上摘点来,加深一下印象。概述:著名的多模式串匹配算法之一。构造与原理:其实很纠结,到底是先讲原理还是先讲构造。因为原理。。。基于构造。。好难讲。 (1)构造一棵Trie,作为AC自动机的搜索数据结构。 (2)构造fail指针,使当前字符失配

2017-05-25 21:54:18 512

原创 HDU5522【二分】&&HDU5523【。。】&&HDU5524【完全二叉树】

HDU5522a[k] + a[j] = a[i]; 二分查找a[i]; 然后发现很有意思的常识:int占多少个字节 vector < int >a; printf(“%d\n”,a.begin(),a.begin()+1);Code:#include <bits/stdc++.h>using namespace std;typedef long long LL;int

2017-05-24 20:33:35 447

原创 POJ3140【树形DP】

题意:给定一颗n节点的树,每个结点有k个学生; 求删除一条边之后分成的两棵子树的学生数差最小,输出差值。思路:dp[node] 维护一下以节点node为根的子树的学生数量,然后删除树枝边以后拿 abs(dp[node] - dp[son] - dp[son])和答案判断一下就好了。 注意: 这里的abs()有问题… 以后别用max(),abs()…这种函数,三目运算符啊!!!Code://#i

2017-05-23 22:17:26 390

原创 POJ2378【树形DP】

题意:给一颗n个结点的树,节点编号为1~n,把删除一个节点之后, 剩下的分支中节点数量最多的数量小于等于总数量一半的编号全部按顺序输出。思路:对于节点 node ,它的值无非是前驱所有,后驱所有。 所以求以每个节点为根的子树的节点个数就好了,判断一下就好了。Code://#include <bits/stdc++.h>#include<iostream>#include<vector>#

2017-05-23 20:46:14 427

原创 POJ2479【线性DP】

看完题还懵逼了。。。题意:给一个序列,求连续两个序列的最大值。思路:正着做一次一段连续序列的最大值。 反着做一次一段连续序列的最大值。 然后对每个位置可得前面最大+后面最大,判断枚举一下就好了。//#include <bits/stdc++.h>#include<iostream>#include<vector>#include<cstdio>#include<string.h>#in

2017-05-23 20:10:32 445

原创 Java之异常处理学习笔记

异常的概念概念:在程序运行时打断正常程序流程的任何不正常的情况称为错位或异常。错误类型:一般性的错误: 输入数据在保存到数组过程中引起超界、除数为零、输入数据不合法等 致命性的错误: 系统硬件故障、网络通讯中断等引起的无法恢复性错误处理方式:向用户通知错误 保存全部工作 让用户适当地退出程序java.lang.Throwable 类是所有异常类的父类。Java处理的异常大致分为3类:Err

2017-05-23 13:09:30 615

原创 【计算机组成原理】第2章 运算方法和运算器

hhh

2017-05-23 13:01:50 2267

原创 HDU2196【树形DP】

写多了,想多了就会了~\开心题意:求每个节点能在树上能到达的最长距离(题意表达硬伤==、)思路:dp[node] 代表以这个节点为根的树向下所能到达的最长距离。 DFS中,对于每个节点的答案无非是前驱能到达的最长或者后驱最长的最长 然后对于每个son的最长前驱距离,就是father 除了这个 son所能到达的最远距离(包括father的前驱 所以要先搜完,然后再搜一遍处理答案。Code://#

2017-05-22 22:18:17 359

原创 Codeforces161D【树形DP】

在读完题以后,一开始不会,我就想那么简单,tm我一定能过… 然后终于屯了几天后拿到加强版的POJ1741,就来再看看///就过了,嘿嘿。题意:求一棵树中距离为K的点对有多少个。思路:dp[node][j]代表 以节点为node为根的树,从node出发,存在距离长度为 k 的节点数量。 先取答案,再更新 ans += dp[node][k-p] + dp[node_son][p-1]; dp[

2017-05-22 21:11:15 451

原创 POJ3107&&POJ1655【树形DP/简单搜索】

写完1655无聊翻了翻discuss,然后顺便改改过了3107…定义一个节点的节点的平衡值为删除这个节点后产生分支连通块元素最大的数量。POJ3107题意:给一颗n个结点的树,节点编号为1~n, 可能有多种方案,按编号顺序输出。POJ1655题意:如果多种方案只取最小节点编号并输出这个值。思路:dp[node] 代表以 node 为根的子树的节点数量。 答案:node_ans:node\_ans

2017-05-22 20:26:03 508

原创 Java.lang学习笔记

String类字符串长度String name = "John";System.out.println(name.length());字符串比较boolean equals() 检查组成字符串内容的字符boolean equalsIgnoreCase() 此方法比较两个字符串,忽略大小写形式int compareTo() 按字母顺序比较两个字符串。 如果两个字符串相等,则返回 0; 如

2017-05-22 11:29:04 486

原创 Codeforces792C【构造】

题意:一个美丽的数就是不含前导0,而且是3的倍数。 现在给你一个n,问去掉最少的数使得变成一个美丽的数。思路:对于原先的数,把每位数的求和然后%3, 1. =0,直接输出。 2. =1,去掉一个1/去掉两个2,不满足的输出-1 3. =2,去掉一个2/去掉两个1,不满足的输出-1 4. 注意处理完可能是空串或者含前导零。Code:#include<iostream>#include<cs

2017-05-21 22:53:48 497

原创 HDU1561【树形DP】

题意:给出一棵以0为根的树,求含M+1个节点的以0为根的树的最大价值。思路:dp[i][j] 代表 以节点 i 为根的树 包含 j 个节点时的最大价值。 构造 当前节点和子节点之间的转换。 dp[u][j] = dp[son][k] + dp[u][j-k]; 初始化,dp[node][1]=val[node]; 而且你转移的时候要保证dp值有意义啊,所以初始化dp值都是-1;Code://

2017-05-21 20:33:08 344

原创 上海市高校程序设计邀请赛暨华东师范大学第九届 ECNU Coder 程序设计竞赛 C. 神奇怪兽在哪里

题意:略.思路:先把 ∗* 连通块附近的 .. 位置存起来A={}A=\{\},然后拿P去一个一个连续的到达,到达用BFS写,存个路径,有一个小优化就是在某一次BFS过程中如果已经到达过一些位置,那么就没必要再BFS到这个位置了。 PS: 然后没想到的是跑的还飞快…猜测数据稍微有点弱…#include <bits/stdc++.h>using namespace std;typedef pai

2017-05-21 17:22:43 887

原创 POJ1947【树形DP】

题意:求 the minimum number of roads that need to be destroyed for a subtree of P nodes to be isolated.思路:dp[i][j]:以当前节点i为根保留j个节点的个数,注:必须保留 i 节点。构造对当前根节点和子节点之间的关系。 去掉以节点son的子树,那就是一刀切了子树,然后剩下当前这么多节点。 dp

2017-05-21 17:15:29 438

原创 POJ2486【树形DP】

题意:给出一棵树,然后从1开始走,问你走k步所能遍历到的最大权值和.思路:我们要求从1这个节点走K步所获得的最大值,所以dp就很容易想到>>>>>dp[node][k]: 代表从这个节点走k步的最大值。 但是在状态转移的时候,好像不能很清楚的从子节点通过某种关系到父节点。 所以套路:考虑从某个节点他最终回不回到本身。 那么转移就很容易了。 dp[i][j][0]代表从节点i走j步回到i的最大

2017-05-21 11:03:40 458

原创 CodeForces788C【BFS】

题意:给你k个数,让你挑几个数,使得他们的平均数是n。思路:想了半天,想到了应该是搞一下每个数与n的差值,然后再处理,但是这个范围就蒙逼了,也看到了[-1000,1000],但是如果我说这个值我枚举到了超过1000怎么办呢。。然后就卡住了。看了一下 http://blog.csdn.net/wchhlbt/article/details/68927002 可以BFS的时候强行不让他变大(>100

2017-05-20 22:51:14 501

原创 Codeforces 141C【构造】

题意有n个在排队,现给出n个人前面有多少个人比他的个数,让你构造这个排列。思路一种想法:我们现在知道每个人前面有多少个人,那么我们构造这个人的序列。先把给出的数量进行排序,我们可以知道每个位置之前人比他高数量最多的情况是0,1,2,3,4,5,6,7...0,1,2,3,4,5,6,7...,如果不满足直接输出”-1”;然后我们 直接模拟下来,把每个人都放到 pos=比他高的人数+1pos=比他高

2017-05-20 14:56:16 493

原创 POJ1157【DP】

题意:每个方格代表一个花瓶,从上到下依次编号1-…这么些花,要求没朵花都插在一个花瓶里,第i朵花插的位置>第i-1朵花插的位置,每个插花的位置有一个美感值,没有插花的位置美感值为0.思路:题目本身不难,瞎打打马上就打好了? 但是要注意几点: 每朵花必须插。 DP过程中注意状态的有效位置,即对于编号第i朵花,它插的位置一定是>=i的呀~Code://#include <bits/stdc++.h

2017-05-17 22:55:10 420

原创 POJ1083【DP】

题意:400个房间如图所示,然后给你 nn 个起始房间和终点房间,要通过中间的走廊把起始房间的桌子移到终点房间。每移动一次会消耗10min时间,当移动产生重叠的时候,需要两次。求最少的时间。思路:是不是很像给你n个区间,然后让你分类,使得每一类所有区间不重叠,然后求最少的类,时间就是|类|*10. 那么先排序一下,然后拿一个数组存当前所有类的包含的最远的右端点,so对于每个区间,二分找一个比这个区

2017-05-17 22:49:07 570

原创 树形DP初探

声明:一下学习内容摘自–树型动态规划 JSOI2010冬令营关于DP:DP的赘述就不多说了,强调两点: 最优子结构:一个最优化策略的子策略总是最优的。 无后效性:当前决策与过去状态无关。再加上树:有n个点,n-1条边的无向图,任意两顶点间可达 无向图中任意两个点间有且只有一条路 一个点至多有一个前趋,但可以有多个后继 无向图中没有环引例、问题描述给定一棵树,树的每个结点有一个权值,要求从中

2017-05-10 22:52:04 364

原创 Tarjan算法流程和简要证明

声明:一下许多内容摘自: 北京大学暑期课《ACM/ICPC竞赛训练》强连通分支、桥和割点 北京大学信息学院 郭炜不建议初学者直接看这篇博文 可以先了解一下Tarjan算法的具体流程,再来看证明。 推荐:全网最!详!细!tarjan算法讲解强连通分量如果有向图G的每两个顶点都强连通,称G为强连通图。 非强连通图有向图的极大强连通子图,称为强连通分量。算法流程DFN[i]表示 遍历到 i 点时是

2017-05-07 10:16:40 1910 3

原创 POJ3177【边双连通分量缩点】

还不会双连通分量的朋友,请扣->这里<-题意:No response.思路:在一个边双连通分量里面,所有的结点的low[ ]都是一样的哟。 所以可以缩点哟。 缩完点以后一定要证明哟。//#include <bits/stdc++.h>#include<iostream>#include<cstdio>#include<cstring>#include<stack>#include<se

2017-05-07 00:42:51 469

原创 HDU4738【边双连通分量】

还不会双连通分量的朋友,请扣->这里<-题意:No response.思路:注意连通么?重边怎么处理啊?answer=0,听说还需要人。 The solution. 1th.处理连通的话,推荐BFS!如果涉及图遍历问题!BFS!你以为DFS标记掉复杂度就低了么? 2nd.重边处理的话,从u->v避免v->u. 在利用链式前向星存储图,利用异或,like: 0^1=1,1^1=1,2^1=

2017-05-07 00:35:49 423

原创 Tarjan求桥和割点与双连通分量【未成形】

wa sa!

2017-05-06 16:36:10 868

原创 POJ2385【DP】

题意:有两棵苹果树,有T个时刻,每个时刻给出苹果从哪棵树上掉落,如果人在该苹果树下就会得到一个苹果,人最多移动W步,并不确定人一开始在哪颗树下,求人最多能得到多少个苹果。思路显然DP。 那么状态就是有当前时刻移动过多少步,在哪棵苹果树下,得到了多少苹果。//读者看到这里推荐可以自己想如何状态转移。so, DP[ i ][ j ][ k ]代表第 i 时刻,移动了 j 步,在编号 k 苹果树下,得到

2017-05-05 13:17:13 364

原创 JAVA抽象类接口学习笔记

抽象类什么是抽象类JAVA允许在类中只声明方法而不提供方法的实现。 这种只有声明而没有方法体的方法称为抽象方法,而包含一个或多个抽象方法的类称为抽象类。抽象(abstract)类: 抽象类是以abstract关键字为开头的类。 抽象方法在声明中也要加上 abstract 。abstract class Employee{ //抽象类:以abstract关键字为开头的类 a

2017-05-03 13:39:47 663

空空如也

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

TA关注的人

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