自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Bill_Utada的成长之路

今天不想跑,所以才去跑。

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

原创 NOJ1121 Message Flood STL应用

题意一共认识n个人,过节了,要给每个人都发一个短信。不过已经收到了m条短信,如果收到了某个认识的人的短信就不用再给他发短信了。最后要发多少短信呢?思路用STL的map能够简化问题。注意字符串不区分大小,所以用transform方法来把string全部大写化。代码#include <cstdio>#include <cstring>#include <map>#include <algorith

2015-06-14 16:41:03 847

原创 Codeforces Round #248 (Div. 2) C - Ryouko's Memory Note

题意一本书有n页。下面要找m个知识点,分别在s[1] s[2]….s[m]页上。 现在有一个机会,可以把某一页的知识点全部移到另一页上。求最少的翻页次数。如s[1] s[2] …. s[m]的翻页次数就是|s[1]-s[2]|+|s[2]-s[3]|+…+|s[m-1]-s[m]|思路记录每个页码在序列中前后出现的页码(如1 2 3 2 4 则2前后出现过1 3 3 4)(注意如果相邻的页码相同则

2015-06-13 11:09:31 1154

原创 Codeforces Round #248 (Div. 2) B - Kuriyama Mirai's Stones

题意给出一个n个数的序列。下面有m个指令 1指令:原序列从l到r的和 2指令:排序过的序列从l到r的和思路线段树可做….直接扫一遍记录sum数组也可以代码#include <cstdio>#include <algorithm>#include <cstring>using namespace std;#define ll long longconst int maxn = 10001

2015-06-13 11:04:47 1228

原创 Codeforces Round #248 (Div. 2) A - Kitahara Haruki's Gift

题意给n个数,都是100或者200,问能否把这些数平均分给两个人。思路先算出如果平均分的话每个人要多少(sum/2),如果不能整除100那么肯定不行。如果是100的倍数,则先尽量用200的,用完200的或者已经不足200了再用100的。代码#include <cstdio>#include <algorithm>using namespace std;const int maxn = 110;

2015-06-13 11:02:09 1370

原创 【数据结构】跳跃列表 SkipList

SkipList超高性能的数据库redis和levelDB都用到了这种神奇的数据结构:SkipList(跳跃表)。之所以说它神奇,是因为跳跃表是基于一个随机数的。跳跃表是在有序链表的基础上进行了扩展,解决了有序链表结构查找特定值困难的问题(O(logn)),是一种可以替代平衡二叉树的数据结构(查询的时间二者基本相同,但是插入的时间跳跃表优于平衡二叉树)。相比于各种平衡二叉树,跳跃表的实现比较简单。有

2015-06-12 18:48:44 1299

原创 C++ STL之list详解

list容器是一个双向链表,可以高效地进行插入删除元素。构造函数list<Elem> c;//空listlist<int> c(3);//创建一个含有三个默认值是0的元素的链表list<int> c(5,2);//创建一个含有五个元素的链表,值都是2成员函数c.begin();//返回指向链表第一个元素的迭代器c.end();//返回指向链表最后一个元素之后的迭代器c.rbegin();c

2015-06-11 19:22:18 1025

原创 C++ STL之deque详解

deque容器deque容器是C++ STL中的内容。deque与vector类似,支持随机访问和快速插入删除。deque还支持从开始端加入数据:push_front()构造函数deque<Elem> d;//创建一个空的dequedeque<Elem> d1(d2);//复制一个deque~deque<Elem>();//销毁所有数据,释放内存成员函数deque.begin();//返回指向第

2015-06-11 15:12:03 4065

原创 NOJ1167 丑陋数 想法题

题意丑陋数n的意思是n的所有素数因子只有2,3,5。 求出前1500个丑陋数。(第一个丑陋数是1)思路用一个数组维护所有的丑陋数。一开始数组中只有一个数就是1。 现在可以确定的丑陋数还有1*2,1*3,1*5。把这三个数中最小的2放进数组。然后变成了2*2,1*3,1*5。再把最小的一个数放进数组…依次执行下去,直到倒数第三个数填满整个丑陋数数组。 用c2 c3 c5确定目前的和2 3 5相乘

2015-06-10 17:55:27 1008

原创 C++ STL之map详解

mapmap是STL的一个关联容器,它提供一对一(唯一的键对应一个值)的数据处理能力。 map内部建立一棵红黑树,对数据具有自动排序的功能。所以在map内部所有的数据都是有序的。

2015-06-10 13:06:06 1386

原创 NOJ1184 迷失的邮票 散列表

题意一共收集了N张邮票,现在丢了2张,剩下N-2张…..原先收集的邮票全部是成对收集的,所以找到哪两种邮票是成单的,输出它们。(确定丢失的邮票不是同一种)思路因为编号比较大,可以用hash表压缩成数组可以开的下的大小。压缩直接取模就好。如果冲突就往下一个找。代码#include <cstdio>#include <cstring>#define MOD 1000007const int max

2015-06-10 09:27:30 782

原创 NOJ1119 仙林鼎山游乐园

题意给定一个有向无权图,问图中是否有环。思路用Floyd的形式进行预处理。eg[i][j]不仅仅表示有一条边连着i和j,而表示有一条i到j的路。 这样处理之后遍历所有的情况,如果发现正着和反着都可以,那就是存在环了。代码#include <cstdio>const int maxn = 55;int n;bool eg[maxn][maxn];int main(){ //freo

2015-06-10 00:37:49 1104

原创 NOJ1113 斐波那契数应用 模拟

题目描述知道斐波那契数吗?下面是它的一个定义: F1 = 1 F2 = 2 Fn+1 = Fn+Fn-1 ,这里n>1每个正整数x 可写为不同斐波那契数的总和,因而意味着存在数k 和数 b1, b2, …, bk,使得x=b1*F1+ …+ bi*Fi+ … +bk*Fk, 其中bk = 1,bi (1≤i < k)为0或1。简言之,我们可写为: b(x) = (bk, bk-1, …, b1

2015-06-10 00:34:47 1215

原创 C++ STL之set详解

set容器总述set集合容器实现了平衡二叉搜索树,复杂度稳定在logn。搜索使用中序遍历,所以可以迭代出从小到大的结果。 使用set容器需要#include <set>创建set容器//创建set容器需要指定元素的类型~set<int> s;元素的插入&中序遍历用insert()方法把元素插入到集合中。如果插入的元素已经有了,set会直接忽视它。默认是从小到大排成平衡二叉树,也可以手写比较函数。

2015-06-09 10:20:50 2400

原创 【Java GUI】文本框和文本区

文本框文本框(JTextField)是界面中用于输入和输出一行文本的框。JTextField类用来建立文本框。与文本框相关的接口是ActionListener。文本框处理程序的基本内容有以下几个方面: ①声明一个文本框名。 ②建立一个文本框对象。 ③将文本框对象加入到某个容器。 ④对需要控制的文本框对象注册监视器,监听文本框的输入结束(即输入回车键)事件。 ⑤一个处理文本框事件的方法,完成

2015-06-09 10:00:39 11504

原创 POJ1260 Pearls Dynamic Programming

题意有很多不同价格的珍珠,越高级的珍珠越贵。现在要买一些珍珠。每一种珍珠买的时候必须在已有的数量上加上10个购买(防止有些人只买几个)。可以将采购的珍珠从低级换成高级(反之则不可)。问最少花多少钱。思路这是一道DP问题。我们用dp[i]表示考虑前i种(最便宜的i种)珍珠所需要的最低价格。假设我们已经知道了dp[1] dp[2] …. dp[i]则dp[i+1]可以如下表示dp[i+1] = dp[i

2015-06-08 13:05:30 973

原创 【Java GUI】Java面板基础:JPanel

面板有两种,普通面板(JPanel)和滚动面板(JScrollPane)Jpanel面板是一种通用容器,JPanel的作用是实现界面的层次结构,在它上面放入一些组件,也可以在上面绘画,将放有组件和有画的JPanel再放入另一个容器里。JPanel的默认布局为FlowLayout。面板处理程序的基本内容有以下几个方面: ①通过继承声明JPanel类的子类,子类中有一些组件,并在构造方法中将组件加入面

2015-06-08 09:13:35 3301

原创 POJ1129 Channel Allocation

题意给定一个无向图,用最少的颜色来涂色,使所有相邻的点颜色都不重复。思路数据很小,暴力即可。或者直接贪心(总是选择能选择的id最小的颜色),下面的代码就是贪心做的。代码#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 30;const int INF = 1

2015-06-07 19:45:30 844

原创 【Java GUI】框架窗口基础

窗口是GUI编程的基础,小应用程序或图形界面的应用程序的可视组件都放在窗口中,在GUI中,窗口是用户屏幕的一部分,起着在屏幕中一个小屏幕的作用。有以下三种窗口: ①Applet窗口 ②框架窗口(JFrame) ③一种无边框窗口(JWindow)用Swing中的JFrame类或它的子类创建的对象就是JFrame窗口。JFrame类的主要构造方法:JFrame();//创建无标题的窗口对象;JF

2015-06-07 18:33:43 1654

原创 【Java GUI】标签、按钮和按钮事件

标签标签(JLabel)是最简单的Swing组件,标签对象的作用是对位于其后的组件作说明,可以设置标签的属性,即前景色,背景色,字体等。但不能动态地编辑标签中的文本。程序关于标签的基本内容有以下几个方面: 1.声明一个标签名 2.创建一个标签对象 3.将标签对象加入到某个容器JLabel类的主要构造方法是:JLabel()//构造一个无显示文字的标签JLabel(String s)//构造一

2015-06-07 00:35:40 8462

原创 【Java GUI】Java GUI基础

AWT和SwingSwing是对AWT的提高和扩展。在写GUI程序时,Swing和AWT都要作用。他们共存于 Java基础类(JFC)中。尽管AWT和Swing都提供了构造图形界面元素的类,但它们的虫药方面有所不同。AWT依赖于主平台绘制用户界面组件,而Swing有自己的机制,在主平台提供的窗口中绘制和管理界面组件。Swing和AWT之间的最明显的区别是界面组件的外观,AWT在不同平台上运行相同的程

2015-06-06 11:15:25 1805

原创 POJ1050 To the MAX 想法题

题意给一个N*N的方阵,找出一个子矩阵,使子矩阵的和最大。(n<=100)思路一维的情况是经典的”最大连续和问题”。我们考虑把二维的问题降到一维来。我们枚举最高的层和最低的层,把他们中间的值都加到一个tmp数组里,然后用tmp数组来做”最大连续和问题”,不断更新ans。那么最后得出的ans一定是最大子矩阵。代码#include <cstdio>#include <algorithm>#inclu

2015-06-05 23:44:15 782

原创 Codeforces Round #306 (Div. 2) C

题意给一个不超过100的整数字符串,从其中拿去任意个数(也可以不拿)。问有没有可能剩下的可以被8整除。如果可以,输出YES和任意一个剩下的数的情况。如果不可以,输出NO。思路想法题。首先观察到,1000可以整除8。也就是说我们可以不关心4位数的情况。只要有可能存在题目说的数,那么它一定可以表示成3位数或更低的位数。那么就好办了,直接枚举即可。 先看是否有0. 再看是否有8. 接着枚举两位数的情

2015-06-05 03:05:38 1199

原创 Codeforces Round #306 (Div. 2) B

题意给一个长度为n的数组(n<=15)。 从中选出至少两个数,要求满足: ①最大和最小的差不能少于x ②选出的所有数的和在l和r之间思路n太小了。sort一下,然后直接枚举最小和最大值,接着dfs中间剩下的即可,发现一个可行的就cnt++。 注意dfs中使用一个状态参数来说明是否考虑sum的检测,从而避免了used数组。代码#include <cstdio>#include <algori

2015-06-05 03:01:41 1413 6

原创 Codeforces Round #306 (Div. 2) A

题意给一个字符串(长度<=10^5)。问其中有没有一个”BA”和一个”AB”呢?如果都有并且它们不重复(即ABA不算),输出YES。否则输出NO。思路一开始想简单了….. 我们扫一遍,把所有”AB”字符串中A的索引放入一个vector a,把所有”BA”字符串中B的索引放入另一个vector b。最后扫一遍两个vector,如果发现一个b的值既不是一个a的值+1,也不是那个a的值-1,那么肯定就存

2015-06-05 02:54:21 1094

原创 POJ1502 MPI Maelstrom Dijkstra

题意给出图,从点1出发,求到最后一个点的时间。思路单源最短路,没什么好说的。注意读入的时候的技巧。代码#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int INF = 1000000000;const int maxn = 110;i

2015-06-04 22:30:13 794

原创 POJ1125 Stockbroker Grapevine 多源最短路

题目大意给定一个图,问从某一个顶点出发,到其他顶点的最短路的最大距离最短的情况下,是从哪个顶点出发?需要多久? (如果有人一直没有联络,输出disjoint)解题思路Floyd不解释代码#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>using namespace std;const in

2015-06-03 21:05:03 791

原创 【网络流】最大流最简单的Ford-Fulkerson算法

Ford-Fulkerson算法是一个非常好理解的算法。大概是这样子的: ①不断从起点开始dfs 找一个通向终点的路。如果一条都找不到了,那么当前的值就是最大流 ②如果还存在着通向终点的路,那么加上它的最短的一截,然后做出图的残余图。继续。下面是基于邻接矩阵的Ford-Fulkerson最大流算法。简单易懂,老少皆宜。#include <iostream>#include <cstdio>#

2015-06-01 22:03:51 2034 2

原创 【Scrapy】Spiders爬虫

Spider类定义了如何爬取某个网站。包括爬取的动作以及如何从网页的内容中提取结构化数据。 Spider就是定义爬取的动作及分析某个网页的地方。爬取的循环:①以初始的URL初始化Request,并设置回调函数。当该request下载完毕并返回时,将生成response,并作为参数传给该回调函数。 spider中初始的request是通过调用start_requests()来获取的。start_r

2015-06-01 22:00:08 878 1

原创 【Scrapy】Items容器

ItemsItem对象是种简单的容器,保存了爬取到的数据。其提供了类似于字典的API以及用于声明可用字段的简单语法。声明ItemItem使用简单的class定义语法以及Field对象来声明。import scrapyclass Product(scrapy.Item): #Product类继承自Item类 name = scrapy.Field() price = scrapy.F

2015-05-27 12:26:11 1831

原创 POJ1062 昂贵的聘礼 Dijkstra+枚举

http://poj.org/problem?id=1062题目抽象一张n个节点的带权有向图,每个节点都有一个值,问从各个点出发,到达0节点的最短路加上出发点的值的最小值是多少?(从0节点出发直接算作0号节点的值) 并且其中每个节点都有一个等级,在一条合法的最短路上不允许出现两个节点等级差大于给定值limit.思路弄了好久的题。和一般的最短路的区别是有一个limit限制。所以我们可以枚举最小等级

2015-05-26 14:29:16 749

原创 状态压缩DP与TSP问题

状态压缩DPDP过程中的状态不可能像背包问题一样只有整数,肯定有各种各样稀奇古怪的状态,需要不止一个变量来表示。这种情况下如果需要使用DP 就必须把状态压缩成一个数来表示,并且一个数只能对应于一种状态。特别地,对于集合我们可以把每一个元素的选取与否对应到一个二进制位里,从而把状态压缩成一个整数,大大方便了计算和维护。对于不是整数的情况,很多时候很难确定一个合适的递推顺序,因此使用记忆化搜索可以避免这

2015-05-25 10:58:47 2802

原创 【游戏支持系统】子系统的启动和终止

引擎由各种子系统构成。引擎启动时需要考虑子系统启动的顺序问题。比如A依赖B的话那么就应该先启动B再启动A,终止的时候应该先终止A再终止B。C++的静态初始化次序(是不可用的)一般用单例类来使用子系统(管理器) 实例用全局变量来避免使用动态内存,如:class RenderManager{public: RenderManager() { //启动管理器...

2015-05-22 21:48:47 1021 1

原创 Java多线程编程(一)

线程的概念进程时程序一次动态执行的过程,它对应着从代码加载,执行到执行完毕的一个完整过程。一个进程可以含有一个或多个线程,每个线程都有一个唯一的标识符。一个线程不能独立的存在,它必须时进程的一部分。一个进程一直运行,直到所有的非守候线程都结束运行后才能结束。进程空间大体分为数据区,代码区,栈区,堆区,多个进程的内部数据和状态都是完全独立的;而线程共享进程的数据区,代码区,堆区。只有栈区时独

2015-03-25 08:42:16 669

原创 Java异常处理

Java异常处理概述异常是指程序在运行过程中出现的不正常情况或错误。这些错误的发生将阻止程序的正常运行。 异常发生的原因有很多,通常包括:用户输入了非法数据。 要打开的文件不存在。 网络通信是连接中断或者JVM内存溢出。这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其他一些是因为物理错误引起的。Java异常处理机制在一个方法的运行过程中,如果发生了异常:

2015-03-24 16:35:47 672

原创 Java正则表达式入门

Java正则概述正则表达式定义了字符串的模式。正则表达式可以用来搜索,编辑或处理文本。 Java.util.regex包主要包括下面三个类: Pattern类:pattern对象是一个正则表达式的编译表示。Pattern类没有公共构造方法。要创建一个Pattern对象,必须首先调用其公共静态编译方法,它返回一个Pattern对象。该方法接受一个正则表达式作为它的第一个参数。 Matche

2015-03-23 09:10:29 676

原创 FZU2152 文件系统 小模拟

Description每个Linux文件具有四种访问权限:可读(r)、可写(w)、可执行(x)和无权限(-)。利用ls -l命令可以看到某个文件或目录的权限,它以显示数据的第一个字段为准。第一个字段由10个字符组成,如下:-rwxr-xr-x第1位表示文件类型,-表示文件,d表示目录2-4位表示文件所有者的权限,u权限5-7位表示文件所属组的成员的权限,g权限8-10位表示所有者和所属组的成员之外的

2015-03-21 03:21:30 945

原创 ZOJ3785What day is that day? 规律

It’s Saturday today, what day is it after 11 + 22 + 33 + … + NN days?InputThere are multiple test cases. The first line of input contains an integer T indicating the number of test cases. For each test

2015-03-21 03:17:39 966

原创 POJ1157 LITTLE SHOP OF FLOWERS DP

题目http://poj.org/problem?id=1157题目大意有f个花,k个瓶子,每个花放每个瓶子都有一个特定的美学值,问美学值最大是多少.注意,i号花不能出现在某大于i号花后面.问最大美学值是多少解题思路dp[i][j]表示将第i个花插入第k个瓶子的最大美学值. 状态转移方程为dp[i][j] = max(dp[i-1][(i-1)~(k-f+i-1)]) + value[i][j]代

2015-03-14 10:23:52 830

原创 CodeForces 277A Learning Languages 并查集

The “BerCorp” company has got n employees. These employees can use m approved official languages for the formal correspondence. The languages are numbered with integers from 1 to m. For each employee w

2015-03-13 23:08:25 938

原创 CodeForces 388A Fox and Box Accumulation 贪心

Fox Ciel has n boxes in her room. They have the same size and weight, but they might have different strength. The i-th box can hold at most xi boxes on its top (we’ll call xi the strength of the box).S

2015-03-13 23:01:00 873

空空如也

空空如也

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

TA关注的人

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