这道题《挑战程序设计》这本书上有详细讲解。对于每一只动物,我们创建3个元素:i-1,i-2,i-3。同时使用一个N*3的并查集维护。
i-1表示i是1物种。并查集中每个集合中的元素表示组内情况同时发生或者同时不发生。
那么对于2种输入,我们可以按照如下的方式维护:
对于a和b是同一类:合并a-1与b-1,a-2与b-2,a-3与b-3;
对于a吃b:合并a-1与b-2,a-2与b-3,a-3与b-1。
合并前要先检查是否矛盾,如对应a与b同一类,如果a-1和b-2在同一集合中,则为假话。...
分类:
其他 时间:
2015-08-16 00:41:37
收藏:
0 评论:
0 赞:
0 阅读:
271
Java之面向对象详细总结
学习面向对象已经整整一周了,面向对象的三大特性继承、封装、多态的基本概念及应用场景,案例示例都已详细学习了,几天称着周末和刚讲完,在此对Java中比较抽象的面向对象做个小的总结,加强一下记忆与理解:
1.面向对象三大特征:
1)封装:
1.1)类:封装的对象的数据和行为
1.2)方法:封装的是具体的业务实现细节...
分类:
编程语言 时间:
2015-08-16 00:41:27
收藏:
0 评论:
0 赞:
0 阅读:
335
Uniform Generator
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 21845 Accepted Submission(s): 8566
Problem Description
Compute...
分类:
其他 时间:
2015-08-16 00:41:17
收藏:
0 评论:
0 赞:
0 阅读:
203
lru详细介绍及简单代码实现:
http://blog.csdn.net/beiyetengqing/article/details/7855933以下是本人的加强的lru缓存类,增加单例获取、缓存超时机制和修复一个clear()的bugpackage com.george.xblog.utils;import java.util.Hashtable;
import java.util.Map;/...
分类:
编程语言 时间:
2015-08-16 00:40:58
收藏:
0 评论:
0 赞:
0 阅读:
178
Android中有两种主要方式使用Service,通过调用Context的startService方法或调用Context的bindService方法,本文只探讨startService的使用,不涉及任何bindService方法调用的情况。当我们通过调用了Context的startService方法后,我们便启动了Service,通过startService方法启动的Service会一直无限期地运...
分类:
移动平台 时间:
2015-08-16 00:40:47
收藏:
0 评论:
0 赞:
0 阅读:
350
题意:给出一个字符串和若干个模板,求出在文本串中出现的模板个数。
思路:因为有可能有重复的模板,trie树权值记录每个模板出现的次数即可。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#d...
分类:
其他 时间:
2015-08-16 00:40:37
收藏:
0 评论:
0 赞:
0 阅读:
250
NSThread创建线程的方式
准备在后台线程调用的方法 longOperation:
- (void)longOperation:(id)obj {
NSLog(@"%@ - %@", [NSThread currentThread], obj);
}方式1:alloc / init - start- (void)threadDemo1 {
NSLog(@"before %@",...
分类:
编程语言 时间:
2015-08-16 00:40:17
收藏:
0 评论:
0 赞:
0 阅读:
143
传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3885
题意:有n件物品,告诉你最初第i件物品的数量Ai,要求最后数量变成Bi
然后有m种交换方式,每种交换方式有两个数字a b,表示物品a能和b等价交换,是双向的
求最少交换多少次,就能实现
这题的正解是套用最小费用最大流模板。。
对着模板...
分类:
其他 时间:
2015-08-16 00:40:07
收藏:
0 评论:
0 赞:
0 阅读:
233
题目大意:有N个帅哥和N个美女,现在给出每个帅哥所喜欢的美女的编号,和一个帅哥和美女的完美匹配
问每个帅哥可以娶多少个美女,且当他娶完这个美女后,剩下的人还可以完美匹配解题思路:神题啊,给一个大神的详细解答
具体是这样的,首先先建边,把帅哥和能娶到的美女连边,再把完美匹配的美女和帅哥连边,这样就形成了一张有向图了
接着,找出这张有向图的所有强连通分量,在强连通分量里面的帅哥都可以娶到自己喜欢的...
分类:
其他 时间:
2015-08-16 00:39:57
收藏:
0 评论:
0 赞:
0 阅读:
271
这一节我们聊聊模块结构
模块的结构非常中药,它可以让维护人员一眼就看懂代码的分布,搞懂一部分代码的意思
1.文档
python特别的留了一个__doc__的动态变量来让外界读取对象的文档字符串
2.结构
我们举一个例子来说明:
#/usr/bin/env python 起始行
'this is a test module'#模块文档(文档字符串)
import sys#引用模块
imp...
分类:
编程语言 时间:
2015-08-16 00:39:47
收藏:
0 评论:
0 赞:
0 阅读:
207
Handler相关博文:
Android中Handler的使用
深入源码解析Android中的Handler,Message,MessageQueue,Looper
Android新线程中更新主线程UI中的View方法汇总
Android中HandlerThread的使用及原理解析
Android中Looper的quit方法和quitSafely方法Service相关博文:...
分类:
移动平台 时间:
2015-08-16 00:39:27
收藏:
0 评论:
0 赞:
0 阅读:
323
* 变量无需事先声明
* 变量无需指定类型
* 程序员不用关系内存管理
* 变量名会被回收
* del可以直接释放资源
1.python使用的是引用调用,而不是值调用,他使用的回收算法是引用计数算法,我下面举两个例子
x = 4
y = 4
aList = [1, 2, 3]
bList = [1, 2, 3]
print(x is y)
print(x == y)
print(a...
分类:
编程语言 时间:
2015-08-16 00:39:17
收藏:
0 评论:
0 赞:
0 阅读:
266
回顾一下我们的游戏:
#建立游戏的核心玩法类
class core(object):
version=1.0
def guessNum(self):
try:
secret=random.randint(1,100)#生成随机数
#print (secret)
time=6#猜数字的次数...
分类:
编程语言 时间:
2015-08-16 00:39:07
收藏:
0 评论:
0 赞:
0 阅读:
246
今天我们引入另外一个程序,文件的读写
我们先把简单的程序代码贴上,然后通过我们多次的改进,希望最后能够变成一个简单的文本编辑器
下面是我们最简单的代码:
'crudfile--读写文件'
def readWholeFile(fileName):
'读取整个文件'
file = open(fileName, mode='r')
text = []
fo...
分类:
编程语言 时间:
2015-08-16 00:38:57
收藏:
0 评论:
0 赞:
0 阅读:
280
UVA 11584 - Partitioning by Palindromes求一个字符串最少可以被分为几个回文字串。如aaadbccb 可以被分为aaa d bccb 三个。n^2预处理出w[i][j],即i到j段是否为回文。为回文的条件为s[i] == s[j] 并且w[i+1][j-1]为回文。如此,我们以位子i为状态,dp[i]表示在i之前的字符最少可以被分为多个子回文串。dp[i] = m...
分类:
其他 时间:
2015-08-16 00:38:47
收藏:
0 评论:
0 赞:
0 阅读:
245
题目大意:给出一张无向图,如果要让每两点之间都有两条不同的路径可以相互到达,问至少还要添加几条边解题思路:添加的边的数量就是(入度为1的点 + 1) /2,也就是所有连通分量缩图后,形成的树的(叶子结点+1) / 2
这题和前面做过的类似,这里只是搬运了一下别人的另一种写法
如果属于同一个连通分量的话,那么他们的lowlink是一样的,所以可以用来直接判断,而不需要再dfs的时候再把每个点归属到...
分类:
其他 时间:
2015-08-16 00:38:37
收藏:
0 评论:
0 赞:
0 阅读:
232
UVA 1424 - Salesmen给出一副图,并且给出nhn走过的路径记入,路径可能是错的,问最少修改几个地方可以使得路径是正确的。dp[i][j] 表示修改第i个位置为j点的前i个位置的最小修改次数。
dp[i][j] = min(dp[i-1][k] + (j == a[i])); {w[k][j] == true 即存在路径k~j}然后再最后一个点找一个最小值。#include <cst...
分类:
其他 时间:
2015-08-16 00:38:27
收藏:
0 评论:
0 赞:
0 阅读:
296
封装 封装 封装 。。。
封装的重要性太重要了 给大家在送点干货
从一个项目中抽取出来的,和大家一起分享 封装scrollView 循环滚动,tableViewCell(连载)
明天还会更新 tableView 的封装
使用了mvc 设计模式
代码如下:
//
// GPMainController.m
#import "GPMainController.h"
#import...
分类:
Web开发 时间:
2015-08-16 00:38:07
收藏:
0 评论:
0 赞:
0 阅读:
395
UVA 10534 - Wavio Sequence定义一种 Wavio 的序列。其长度为2*n+1,前n+1严格递增,后n+1个严格递减。
求在给的序列中找一个最长的 Wavio 子序列。输出长度。正向LIS求出每个点以该点为结尾的最长上升子序列长度p[i],然后反向LIS求出以该点位开头的最长递减子序列长度q[i]。然后枚举 Wavio 子序列的中点,该店的 Wavio 长度为 2 * min...
分类:
其他 时间:
2015-08-16 00:37:57
收藏:
0 评论:
0 赞:
0 阅读:
178
usingSystem;usingSystem.Drawing;usingSystem.Drawing.Drawing2D;usingSystem.Drawing.Imaging;usingSystem.IO;usingSystem.Text;usingSystem.Web;namespaceDem...
分类:
Windows开发 时间:
2015-08-16 00:36:37
收藏:
0 评论:
0 赞:
0 阅读:
255