- 博客(138)
- 资源 (7)
- 收藏
- 关注
原创 快速上手MarkDown
前言 Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。本鶸也算写了一年的博客了,决意从今往后一概使用MarkDown编辑器写博啦啦啦♪(^∇^*)啦啦啦啦~~~文本样式MarkDwon*斜体文本* (快捷键:Ctrl + I)_这样也是斜体_**粗体文本** (快捷键:Ctrl + B)__这样也是粗体__***粗
2017-01-16 00:04:10
937
1
原创 处女座算法之Strassen矩阵乘法(从O(N^3)到O(N^2.81))
矩阵乘法是线性代数中最常见的问题之一,它在数值计算中有广泛的应用。在很长一段时间内,矩阵乘法的算法就像它自身的定义一样简单直白。>设A是m×n的矩阵,B是n×p的矩阵,那么C=AB是矩阵A和矩阵B的乘积,C是m×p的矩阵。>即 C[i][j] = ∑A[i][k]×B[k][j](k从1到n)具体算法描述为: for (int i = 1;i <= m;++i){ fo
2017-01-14 21:39:44
3624
1
原创 Java集合学习速记
概述:C++的STL里面专门有一个“集合”就是set;Java里面也有Set,却只是集合的一种。Java集合可分为Collection和Map两种体系->Collection接口: ->Set:元素无序、不可重复的集合 ->List:元素有序,可重复的集合(可以看成动态数组)->Map接口:具有映射关系"key-value对"集合(key相当于函数的自变量,value相当于因变量)Collection接口:
2016-11-19 20:52:48
882
原创 处女座算法之大整数乘法(从O(N^2)到O(N^1.59)的思想)
每次看算法的优化设计都会觉得:优化算法的人都是处女座!《算法设计与分析》一书讲完分治之后顺手讲了大数乘法的分治递归算法,然后又兴冲冲地将原本O(N^2)的算法优化成O(N^1.59)小学生是这样做乘法的: 让计算机模拟这个过程:package com.mustso.java1;import java.util.Scanner;public class BigIntMultiply { final static int N = 100; final static
2016-11-19 03:23:29
1607
原创 设计模式之单例设计模式
package com.mustso.java;/* * 设计模式:设计模式是在大量的实践中总结和理论之后优选的代码结构、编程风格、以及解决问题的思考方式。 * 23种设计模式。 * * 单例的设计模式: * 1)解决的问题:使得一个类只能创建一个对象。 * 2)如何解决? */public class TestSingleton { public sta
2016-11-18 00:24:01
416
原创 JUnit单元测试类
怎么单独测试不是main方法的方法呢?package com.mustso.java;import org.junit.Test;/* * JUnit单元测试类 * 1.当前工程下-右键build path-add libraries-Junit4 * 2.在主类中,创建一个空参的无返回值的方法,(如public void test())用于代码的测试,方法上声明:@Test *
2016-11-18 00:22:18
935
原创 Java Swing做的简易计算器
先整了一个包package cn.cal;包里面有两个类:一个 Calculator extends JFrame 实现计算器的界面一个 Calculate 实现对算术表达式的处理Calculator extends JFrame代码:PS:除了各个按钮的监听事件是自己写的,其他部分当然都是用的WindowBuilder插件拖拉完成=-=package cn.cal
2016-10-30 21:34:45
3929
原创 java之可变形参个数的方法()
重载getSum()方法:代码1: public int getSum(int i,int j){ return i+j; } public int getSum(int i,int j,int k){ return i+j+k; } public int getSum(int[]args){ int sum = 0; for (int i = 0;i < args
2016-10-30 18:55:31
1505
原创 栈的应用之求解算术表达式
以前是怎么处理算术表达式的?好像都是自己瞎YY的最近数据结构学到栈的应用才发现,对于算术表达式有非常正规的处理方法--栈处理书上用的伪代码,于是我偷偷自己实现了该算法,发现书上其实是有bug的书上的算术表达式没有考虑十位以上的数,即默认算术表达式中的数都是个位数。。。于是自己加了数的处理正文:为什么算术表达式求值会用到栈?算术表达式求值的难点在于,操作符的优先级
2016-10-29 15:43:11
1100
原创 java学习之图形用户接口AWT组件部分
记录学习Java私塾Java视频培训教程中级-9 图形用户接口AWT组件部分什么是GUIGUI:Graphical User Interface ,图形用户接口,即人机交互图形化用户界面,就是屏幕产品的视觉体验和互动操作部分。经常读作“goo-ee”,或者字母“G-U-I”,或者完整的英文。AWT:(Abstract Window Toolkit:抽象窗口工具箱),包括了丰富的图形、用户界面组件和布局管理器的支持,还有对界面事件的处理机制等。Component(组件)就是,具有图形界面,并能完成一定
2016-10-10 23:29:23
872
原创 java中的equals方法
随便写一个类package com.test1;public class AB { int x = 10;}这个类里面什么也没有,除了一个default类型的属性x然而当我们用eclipse实例化一个AB的对象aa,然后用aa去“点”一下的时候,会自动跳出许多方法,第一个就是equals()也就是
2016-10-03 11:55:24
1469
原创 Java之Math类使用小结
Java的Math类封装了很多与数学有关的属性和方法,大致如下:public class Main { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(Math.E);//比任何其他值都更接近 e(即自然对数的底数)的 double 值。
2016-09-19 23:58:20
26914
3
原创 HTML学习小结之HTML标签
1.文档结构标签 ◎ :标识文档的开始和结束 ◎ :标识文档的头部区域 ◎ :标识文档的主体区域其中头部区域在页面中不可见而主体区域可见示例1: 文档结构标签网页正文写在这里2.文本格式标签主要标识文本区块并附带显示格式 ◎ :标识网页标题 ◎ :标识标题文本,其中i是1到6的数字,标识i级标题 ◎ :段落
2016-09-13 21:15:08
2883
原创 HTML学习记录之超链接和路径
学习视频:http://edu.youkuaiyun.com/course/detail/489/5453?auto_start=1代码示例: 超链接和路径 百度 --> 百度 --><!-- href属性是必须属性,指定要跳转的网站的链接target属性告诉浏览器希望将所链接的资源显示在哪里_blank : 在新窗口或标签页中打开文档 _self
2016-09-13 21:09:57
1176
原创 HTML5学习记录之文本元素
主要记录除元素a外的其他文本元素的功能(虽说大多都没有什么功能)<!--文档类型声明不区分大小写--> 文本元素 b元素:这是HTML5教程 strong元素:这是HTML5教程 wbr元素:安全换行,主要就是英语单词被拆开的问题 i元素:这是HTML5教程 em元素:这是HTML5教程 s元素:这是HTML5教程 del元素:这是HTML5教程 u
2016-09-12 19:21:40
925
原创 Java学习之日期格式化显示(SimpleDateFormat&Date)
初学Java,感觉什么都很新奇,比如看到下面一段代码:import java.text.SimpleDateFormat;import java.util.Date;/* *日期格式化显示 */public class Main { public static void main(String[] args) { // TODO Auto-generated method
2016-09-11 23:25:45
847
原创 Java学习之for-each循环与集合的遍历
for-each循环(Java 1.5后) for (type varname :obj){ //循环体 }type:数据类型varname:元素变量obj:需要遍历的对象,如数组,集合等上课的讲师说这个循环里面的变量只读于是我对此作了个小测试测试:package kj.t1;import java.util.Arrays;public clas
2016-09-09 09:15:52
811
原创 STL学习笔记之next_permutation(下一个排列)
《STL源码解析》这本书中有这个函数的源码next:下一个permutation:排列顾名思义,next_permutation的意思就是下一个排列,作用就是求某序列的下一个排列怎么用?首先需要包含头文件#include传入数组的[begin,end)[next_permutation(a,a+n)],函数里面将执行将数组[begin,end)内的序列变成下一个排列的操作
2016-09-06 00:15:26
1121
原创 POJ 3904 Sky Code (容斥原理)
DescriptionStancu likes space travels but he is a poor software developer and will never be able to buy his own spacecraft. That is why he is preparing to steal the spacecraft of Petru. There is o
2016-09-04 10:09:41
513
原创 POJ 2311 Cutting Game (sg博弈)
POJ 2311 Cutting Game考虑每张纸的SG:我们称当前纸可以切成的两张纸ai,bi为当前纸的子状态那么当前纸的SG就是它所有子状态的异或和而它的每一个子状态有2张纸,也是求异或和因为每张纸的属性包括w和h,所以用到二维数组保存sg值(当然结构体保存一张纸的属性也可)#define mem(a,x) memset(a,x,sizeof(a))#include
2016-09-03 23:37:36
565
原创 CF 277C Game(博弈)
CF 277C Game一道恶心的博弈题。。。博弈部分是正常的NIM游戏规则,但是对于图形的处理好麻烦的说n*m的矩形网格,已经切了K条线 再两人轮流操作 合法操作是在网格上画横线或竖线长度自随意,但是必须产生新的切痕网格的边界不能切最后不能操作者败不难发现行和列是相互独立的 每一行和每一列单独看成成一堆石子,完整部分的长度就是石子个数,每切一刀就相当
2016-09-03 22:54:10
606
原创 POJ 2348 Euclid's Game (博弈)
POJ 2348 Euclid's Game挑程上的题 当a >= 2b时 :胜 当 a > b&&a 当 a == b时 :胜 2b计算过程中溢出了...... #include#include#include#include#include#include#define mem(a,x) memset(a,x,sizeof(a))using n
2016-09-02 22:26:43
345
原创 POJ 3480 John (Nim博弈)
POJ 3480 JohnN种糖 每种Ai个,每人每次从中选一种拿如果每种糖都只有1个,奇数必败偶数必胜否则,sg = 0败态 #include#include#include#include#include#include#define mem(a,x) memset(a,x,sizeof(a))using namespace std;typedef long
2016-09-02 21:53:59
514
原创 POJ 2068 Nim (博弈和DP本是一家=-=)
POJ 2068 Nim题意:2n个人围成一圈,编号为奇数的一队,编号为偶数的一队,轮流从原本S个石头的石堆进行拿石头操作每个人可拿石头范围在[1,m[i]]内(m[i]表示第i个人最多能拿的石头数)问先手(0所在的偶数队)能否取胜分析:dp[i][j]表示第i个人面对j个石头的局面 是否能胜(1/0)只要有“败”的子状态就是胜态如果子状态全为胜态则为败态状态转
2016-09-02 19:07:27
974
1
原创 POJ 1740 A New Stone Game(博弈)
POJ 1740 A New Stone Game题意:每次对某堆拿走x个石头并向非空石堆转移yi个石头x>0,yi>=0yi的含义是说可以向多个石堆转移石头 直到无法操作者败分析:1.石堆的石头数成对相等的状态为败态(例如 1 1 2 2...)2.所有不是上述情况的状态转移到全部成对相等花费的步数是1步,故为胜态对于1:完全的对称使得先手操作之后后手
2016-09-02 09:10:43
461
原创 POJ 1704 Georgia and Bob(博弈)
POJ 1704 Georgia and Bob挑程上是这样说的:把相邻的棋子两两组合转化成Nim游戏比如棋子坐标为 : 1 3 7 10 18 27那么看出有3堆石头分别有1,2,8个石头其中1表示3可以移到2(可以拿走1个石头)2表示10可以移到8,9(可以拿走1个或者2个石头)8表示27可以移到19,20,21...26(有8种拿石头的方法)可是这样看来只有每
2016-09-02 03:58:15
396
原创 POJ 2960 S-Nim(博弈)
POJ 2960 S-Nim简单的Nim游戏博弈给出可移动的数的集合问当前局面是胜还是败#include#include#include#include#include#include#define mem(a,x) memset(a,x,sizeof(a))using namespace std;typedef long long ll;const int
2016-09-02 02:16:49
404
原创 POJ 2425 A Chess Game(博弈)
POJ 2425 A Chess Game当前棋子没有可以到达的点的时候sg=0(败)以此状态转移 ,每个棋子的SG都可以求出来 也就是基础的nim博弈C++#include#include#include#include#include#include#define mem(a,x) memset(a,x,sizeof(a))using na
2016-09-02 02:01:00
579
原创 POJ 1678 I Love this Game!(博弈)
DescriptionA traditional game is played between two players on a pool of n numbers (not necessarily distinguishing ones). The first player will choose from the pool a number x1 lying in [a, b]
2016-09-02 00:38:39
591
原创 POJ 2975 Nim(博弈)
POJ 2975 Nim问当前态有多少种方法可以赢也就是问有多少种方法转移到败态//package acm.poj2975;import java.util.*;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub @SuppressW
2016-09-01 15:33:49
439
原创 HDU 4388 Stone Game II(博弈)
http://acm.split.hdu.edu.cn/showproblem.php?pid=4388找规律:如果所有石头数的二进制中1的总个数是奇数且n为偶数 胜如果所有石头数的二进制中1的总个数是偶数且n为奇数 胜其他情况 败//package acm.hdu2388;import java.util.*;public class Main { public
2016-09-01 15:16:03
1220
原创 POJ 2234 Matches Game(博弈)
http://poj.org/problem?id=2234裸的NIM//package acm.poj2234;import java.util.*;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new
2016-09-01 14:57:28
406
原创 POJ 3688 Cheat in the Game(作弊博弈)
poj.org/problem?id=3688站在先手的角度:如果石头数可以被偶数张卡片组和而成,则有输的可能如果石头数可以被奇数张卡片组和而成,则有赢的可能必胜:石头数只由奇数张卡片组和而成必败:石头数只由偶数张卡片组合而成平局:任意卡片组合都无法得到石头数裁判想让先手必胜只需选择根据卡片的组合先手必胜的石头数dp[i][1] = true表示石头数为i的情况可以
2016-09-01 11:08:10
739
原创 LightOJ 1317 (据说是概率DP的...水题)
LightOJ 1317。。。。。。其实和篮子没有关系啊,投进求也不影响概率。每次投进的概率是n*p,k次就是k*n*p。。。。。。#include#includeusing namespace std;int kas;int main(){ int T,n,m,k;cin>>T; while (T--) { double p;cin>>n>>m>>k>>p;
2016-08-28 12:10:58
796
原创 LightOJ 1265 (概率DP)
感觉蛮好玩的,和鹿相遇的时候,杀还是不杀呢?当鹿越来越少的时候,你遇到老虎被杀的概率就会增大,但是老虎遇到老虎相互残杀的概率也会增大。而题目也没说你杀鹿的概率是多少啊?完全没有头绪?其实仔细想想,你存活的概率只和老虎有关。因为老虎是成对死的,所以如果老虎数量是奇数,总有一天会遇到老虎,必死无疑。如果老虎数量是偶数就算概率因为概率只和老虎有关,所以只考虑,存活下来就是要每天都
2016-08-28 10:12:22
753
原创 概率DP入门小结
说是概率DP,其实主要是求概率和期望的问题说到DP总要有状态,每种状态可能有多种子状态一般的DP是这样:在DP过程中,当前状态必然是由多个子状态中的最优的转移而来所以一般的DP求的是最优的结果而概率不需要最优,而是实际概率所以概率DP最大的区别在于:在DP过程中,当前状态是由所有子状态的概率共同转移而来所以概率DP只是利用了DP的动态而没有规划(只有状态转移,而不需要进
2016-08-27 20:41:36
3150
原创 矩阵乘法学习记录+模板+例题
学习记录主讲矩阵乘法(原理、计算、功能、应用)模板为矩阵乘法和矩阵快速幂的C++代码实现例题为矩阵快速幂求斐波那契数和一个ACM的具体题目(用矩阵快速幂优化概率DP)学习记录:(from :http://www.ruanyifeng.com/blog/2015/09/matrix-multiplication.html)大多数人在高中,或者大学低年级,都上过一门课《线性代数》。这门课其实是教矩阵。刚学的时候,还蛮简单的,矩阵加法就是相同位置的数字加一下。
2016-08-25 10:59:37
16399
原创 树形DP整理小结
树形DP:在树上进行dp,树是递归的定义的,所以树形dp也是递归的求解,一般而言,dp[node]表示的是以node为根的子树能得到的最优解一般而言,dp[node]需要从node的子结点进行状态转移,树形dp又常常和背包结合起来,因为dp[node]的状态是由它的儿子转移而来,我们常常可以将node的n个儿子看做n个物品,要如何对这n个物品抉择得到最优的dp[node]就常用到背包的思想当然,常常dp不止node这一维,至于第二维保存什么 则根据题目来一般都是题目给出的限制条件作为dp数组的第
2016-08-24 15:38:21
2772
转载 有向图强连通分量的Tarjan算法
有向图强连通分量的Tarjan算法[有向图强连通分量]在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly connected components)。下图中,子图{1,2,3,4}为一个强连通分量,因为
2016-08-24 11:08:32
410
转载 tarjan算法
说到以Tarjan命名的算法,我们经常提到的有3个,其中就包括本文所介绍的求强连通分量的Tarjan算法。而提出此算法的普林斯顿大学的Robert E Tarjan教授也是1986年的图灵奖获得者(具体原因请看本博“历届图灵奖得主”一文)。 首先明确几个概念。强连通图: 在一个强连通图中,任意两个点都通过一定路径互相连通。比如图一是一个强连通图,而图二
2016-08-24 09:51:08
350
学生社团管理系统--Java界面版
2017-03-03
游戏坦克大战(Java实现)
2016-09-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人