- 博客(22)
- 收藏
- 关注
转载 Git学习
一:mkdir learngitpwdgit initls -ahgit add readme.txtgit commit -m "er"$ mkdir learngit$ cd learngit$ pwd/Users/michael/learngitpwd命令用于显示当前目录。在我的Mac上,这个仓库位于/Users/michael/l
2016-05-31 14:39:59 450
转载 几种循环的区别
a> for(String s:strArray){...}这种for循环是直接取数组中的值,而不是取数组中的引用地址,效率应该较高,缺点是不能给集合赋值 b> for(int n=0;n总的来说,如果用数组实现的,那最好用普通for循环,因为下标索引速度更快。增强型的for循环,其实是用iterator迭代器来做的,迭代器适合链表格式的存储结构。所以,
2016-05-31 14:12:10 652
转载 Java命名规范和编程风格
一 命名规范1.包的命名a 小写单词组成b 加上惟一的前缀。一般采用自己在互联网上的域名作为自己程序包的惟一前缀。c 格式 “com.公司名.项目名.模块名....”e.g:net.frontfree.javagroup附:indi:个体项目,指个人发起,但非自己独自完成的项目,可公开或私有项目,copyright主要属于发起
2016-05-31 14:11:30 311
转载 Java字符类型
在java中有三个类负责对字符的操作:Character、String、StringBuffer。其中,Character类是对单个字符进行操作,String是对一个字符序列的操作,StringBuffer是对一串字符进行操作。Character 是lang包里的类 所有方法都是静态的 所以可以直接拿来用Character是char的对象版本 8种基本类型有8种对应的对象版本比如i
2016-05-31 14:10:53 401
转载 Enum
enum EnumTest { MON, TUE, WED, THU, FRI, SAT, SUN;}public class Main { public static void main(String[] args) { for (EnumTest e : EnumTest.values()) { System.out.println
2016-05-31 14:10:13 193
转载 ArrayList和LinkedList
一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,LinedList比较占优势,因
2016-05-31 14:08:04 403
转载 HashMap TreeMap LinkedMap HashTable
java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMap Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。 Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度
2016-05-31 14:02:42 329
转载 关于split函数
在java.lang包中也有String.split()方法,与.net的类似,都是返回是一个字符型数组,但使用过程中还有一些小技巧。如执行:1 String str = "1|23|4|56|7";2 String[] arr = str.split("|");3 for (int i = 0; i ) {4 System.out.println(arr[i]);5
2016-05-31 10:11:50 373
转载 PrintWriter
Java.io包8种:行刷新 字符流或字节流 文件名 文件名和字符集1)首先先知道它的八种构造方法,但怎么记住这八种呢?我们都知道PrintWriter是一种过滤流,也叫处理流。也就是能对字节流和字符流进行处理,所以它会有:PrintWriter(OutputStream out) 根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter。
2016-05-31 10:03:57 412
转载 String,StringBuffer,StringBuilder三者区别
1.三者在执行速度方面的比较:StringBuilder > StringBuffer > String 2.String 的原因 String:字符串常量 StringBuffer:字符串变量 StringBuilder:字符串变量 从上面的名字可以看到,String是“字符串常量”,也就是不可改变的对象。对于这句话的理
2016-05-31 09:52:06 256
转载 字符流与字节流的转换
字节流转字符流字符流和字节流是根据处理数据的不同来区分的。字节流按照8位传输,字符流按照16位传输 由于字符流使用Unicode字符集,支持多国文字,因此若流要跨越多种平台传输,应使用字符流。一、InputStreamReader类InputStreamReader 将字节流转换为字符流。是字节流通向字符流的桥梁。如果不指定字符集编码,该解码过程将使用平台默
2016-05-31 09:42:07 1067
转载 序列化
Java序列化机制和原理 Java序列化算法透析 Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。Java序列化API提供一种处理对象序列化的标准机制。在这里你能学到如何序列化一个对象,什么时候需要序列化以及Java序列化的算法,我们用一个实例来示范序列化以后的
2016-05-31 01:03:59 231
转载 HashMap为什么是线程不安全的
addEntry RemoveEntry reszie 三个函数这里会出问题,简而言之就是1、 void addEntry(int hash, K key, V value, int bucketIndex) { Entry e = table[bucketIndex]; table[bucketIndex] = new Entr
2016-05-31 00:54:45 705
转载 Java 多线程 Synchronized关键字
同步机制:多线程的同步机制对资源进行加锁,使得在同一个时间,只有一个线程可以进行操作,同步用以解决多个线程同时访问时可能出现的问题。 synchronized关键字作用:实现同步机制 当synchronized关键字修饰一个方法的时候,该方法叫做同步方法。 当synchronized方法执行完或发生异常时,会自动释放锁。 1.是否使用synchronized关键字的不
2016-05-31 00:36:03 172
原创 CodeForces 269C Flawed Flow 拓扑
题意:给出一张网络流构成的图,给出每对点之间的流量,要求输出流的方向。思路:平衡出入流,入流=出流=流量>>1 以源点为突破口类似拓扑的方式写就好了。//平衡出入流#include#include#include#include#include#include#includeusing namespace std;const int maxn=300000;co
2016-02-27 16:25:28 463
原创 CodeForces 266E More Queries to Array... 线段树
题意:两种操作:1 区间【l,r】变为一个值2 查询 ,k解题:线段树每个点记录a[l]*l^k,统计区间和,直接查询即可。然后把要查询的值多项式展开转化一下,当k=5时,就要同时查询k=0,1,2,3,4,5的值。#include#include#include#include#include#includeusing namespace std;#define
2016-02-27 16:21:14 251
原创 51nod 1376 最长递增子序列的数量 树状数组
数组A包含N个整数(可能包含相同的值)。设S为A的子序列且S中的元素是递增的,则S为A的递增子序列。如果S的长度是所有递增子序列中最长的,则称S为A的最长递增子序列(LIS)。A的LIS可能有很多个。例如A为:{1 3 2 0 4},1 3 4,1 2 4均为A的LIS。给出数组A,求A的LIS有多少个。由于数量很大,输出Mod 1000000007的结果即可。相同的数字在不同的位置,算作不同的,
2016-02-27 16:14:51 545
原创 51nod 1371 DP
有n行格子,第i(1行有i个格子,每行格子是左对齐。现在要在每一个格子填入一个非负整数,最后使得每一行每一列的和都不超过2。请计算有多少种方案,答案比较大,请输出对100,000,007(1e8+7)取余后的结果。下图是n=4的时候格子的摆放。Input第1行:给出一个整数n (1Output对于每个测试用例,输出结果占一行。Input示例1Output示例
2016-02-27 16:12:11 567
原创 51nod 1364 线段树
给出一个1至N的排列,允许你做不超过K次操作,每次操作可以将相邻的两个数交换,问能够得到的字典序最大的排列是什么?例如:N = 5, {1 2 3 4 5},k = 6,在6次交换后,能够得到的字典序最大的排列为{5 3 1 2 4}。解题:《System Messag 的题解》这个题目明显是要贪心的。从前往后每次看看能不能拿一个大的放到当前数字的前面,而且要拿尽可
2016-02-27 15:51:32 602
原创 CodeForces 276E Little Girl and Problem on Trees 树状数组
题意:一棵树只有一个顶点,然后由这个顶点引申出多条单链,对于输入 0 v x d,代表把距离V节点距离在d以内的所有节点增加x,对于输入 1 v,代表查询v节点的值;解题:对根节点和根节点的所有孩子节点建一棵树状数组,树状数组下标为深度,用前缀和表示每个节点的值,在单个节点更新变化,即如在(2,5)区间加5,则位置2要+5,位置6要-5; 然后要考虑是否跨根的情况,如果跨根
2016-02-27 15:34:12 337
原创 CodeForces - 280D k-Maximum Subsequence Sum 线段树模拟费用流操作
题意:给出序列a,长度为n两种操作:1 将a[i]的值改为val 2 在【l,r】区间选择不相交的k段数,使这k段和最大,输出这个和。解题: 如果是费用流,建图会将每个点拆点,然后限定每个点的流量为1,跑一边最小费用最大流就好了,但是这道题带修改而且数据范围较大不适合费用流。 采用线段树模拟费用流操作,个人认为这道费用流可以用线段
2016-02-27 15:11:37 328
原创 UVALIVE 7505 Hungry Game of Ants DP
EC-FInal的题。。要是场上出了就好了。。。题意:有N只蚂蚁玩饥饿游戏,在一个x轴上,第i只蚂蚁在坐标i上,重量为i,现在蚂蚁可以选择向左走或向右走,当两只蚂蚁相遇时大蚂蚁吃掉小蚂蚁,重量增加小蚂蚁的重量,如果重量相同,左边的蚂蚁吃掉右边的蚂蚁,给出N,K,问第K只蚂蚁最后留下的情况数。数据范围: N=1 K解题:对于第N只蚂蚁,如果他想获胜,那么最后一个向左走的蚂蚁的前缀和必须小
2016-02-27 14:44:38 1266 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人