- 博客(294)
- 资源 (13)
- 收藏
- 关注
原创 POJ 1236 Network of Schools 强联通分量求出度为0的点和入度为0的点的数目
POJ 1236 Network of Schools 强联通分量求出度为0的点和入度为0的点的数目 链接:POJ 1236 Network of Schools 题意:给定N个顶点若干条边的有向图,求:遍历整个图,最少需要多少个顶点作为遍历的根节点;将这个图变成连通图,最少需要添加多少条边?思路:先求强连通分量,缩点。然后第一问就是求缩点之后的DAG中入度为0的点的个数。
2016-07-23 20:54:35 1074
原创 POJ 2186 Popular Cows Kosaraju求强联通分量
POJ 2186 Popular Cows 强联通分量题目链接: POJ 2186 Popular Cows 题意:给定N个顶点M条边的有向图。边具有传递性。如A到B连通,B到C连通,那么A到C也是连通的。求有多少个顶点满足其他所有顶点到该顶点都连通。思路:先求出强联通分量,缩点,强连通分量内所有的点都是相互连通的,然后所有的缩点构成一个DAG(有向无环图),如果图中要存在顶点满足
2016-07-23 13:49:09 817
原创 hdu 2376 Average distance DFS 求树上任意两点距离和
hdu 2376 Average distance DFS 求树上任意两点距离和题目链接:hdu 2376 Average distance题意:标题都已经说明了题意了。求树上任意两点距离和的平均值。分析:分析过程和《 hdu 5723 Abandoned country 最小生成树+DFS》中求树上任意两点距离之和是完全一样的。思路就是先求出每条边两端的点的个数,然后对于每条边,
2016-07-19 20:38:51 3155
原创 hdu 5723 Abandoned country 最小生成树+DFS
hdu 5723 Abandoned country 最小生成树+DFS题目链接:hdu 5723 Abandoned country题意:给定N个顶点M条边的无向图,每条边包含一个权值,权值都各不相同,求最小生成树并求最小生成树上的任意两点之间距离的最小期望。分析:因为边权值各不相同,那么最小生成树是唯一的。那么只需要求最小生成树上的任意两点之间的距离之和除以N*(N-1)/2即可。
2016-07-19 20:15:40 1365
原创 hdu 2157 How many ways?? 矩阵快速幂
hdu 2157 How many ways?? 矩阵快速幂题目链接:hdu 2157 How many ways?? 分析:令M[i][j] = 1 表示从i到j 连通,即i, j经过一个点到达的方案数为1。 那么∑(M[i][k] + M[k][j]), k∈(0, N-1), 就表示i, j经过两个点到达的方案数。即将矩阵M^n就可以求出i, j经过N个点到达的方案数。#incl
2016-07-19 15:24:10 708
原创 CodeForces 678D Iterated Linear Function 矩阵快速幂
CodeForces 678D Iterated Linear Function 矩阵快速幂题目链接:CodeForces 678D Iterated Linear Function 题意:由递推式g(n)=Ag(n-1)+B,g(0)=X;求g(n) % (1e9+)。思路:构造变换矩阵A为{{A, B}, {0, 1}}; 初始矩阵B为{{X, 0}, {1, 0}}; 那么A^N
2016-07-19 11:48:15 1022
原创 nyoj 301 递推求值 矩阵快速幂
nyoj 301 递推求值 矩阵快速幂题目链接:nyoj 301 递推求值 矩阵快速幂分析:初始矩阵为:,那么需要目的矩阵就是:;然后就是构造一个变换矩阵:;然后用矩阵快速幂求解。#include #include #include #include #include #include #include #include #include using
2016-07-19 02:48:30 1247
原创 51Nod 编辑距离 DP+滚动数组
51Nod 编辑距离 DP题目链接:51Nod编辑距离思路:令dp[i][j] 表示 A字符串前i个字符,与B字符串的前j个字符的最小编辑距离。那么有,i = 0 && j == 0 时,dp[i][j] = 0;i = 0 && 0 dp[i][j] = j; j = 0 && 0 dp[i][j] = i;0 if (A[i] == B[j])d
2016-07-18 17:41:09 694
原创 hdu 5652 India and China Origins 并查集+BFS
hdu 5652 India and China Origins 并查集+BFS题目链接: India and China Origins题意:给定N*M的一个地图,1代表障碍物,0代表路,然后在Q个单位时间中,每过一个单位时间,向地图中某点添加一个障碍物,问到哪个时刻,人不能从第一行访问到最后一行。人只可以上下左右移动。如果到了Q时刻还从第一行能访问到最后一行,输出-1。思路1:首先
2016-07-17 14:07:14 1337
原创 51 Nod 1134 最长递增子序列 LIS NlogN 写法
51 Nod 1134 最长递增子序列 LIS NlogN 写法题目链接:51Nod 1134 最长递增子序列 思路:相对N^2的DP 算法, NlogN是对内层循环进行优化。代码中国B数组保存的是A[0]~A[i-1]去重过后的有序的序列。然后通过二分查找进行的优化。#include <cmath>#include <queue>#include <vector>#include <cs
2016-07-16 22:46:54 811
原创 51Nod 1007 正整数分组 01背包
51Nod 1007 正整数分组 01背包题目链接:51Nod 1007 正整数分组。 思路:假定2组分别为集合A,集合B,并且集合A的和SUM(A)小于或等于集合B的和SUM(B)。对于每个数组,只有在A集合和不在A集合(或者是在B集合)的情况。然后可以将题目转化为01背包模型:在[SUM(A)+SUM(B)]/2【PS:这里是整数除法】的容量下,所能取得的最大价值,每个物品的价值和体积都是a[
2016-07-16 21:48:14 757
原创 UVA 11401 Triangle Counting [递推]
UVA 11401 Triangle Counting [递推]题目链接:VJudge 题意:给定N条边,边长分别为1~N,从这N条边中,选出三条边,问能构成三角形的情况有多少种。 思路:dp[i]表示i条边的情况,dp[i]包含了dp[i-1]与最长边为i这两类情况构成。当最长边为i时,另外两条边范围是[2, i-1],我们假定这两条边为a,b。满足条件1#include <cmath>#i
2016-07-16 21:17:00 666
原创 51Nod 1006 最长公共子序列LCS DP水题
题目链接:51 Nod 1006 题意: 求A,B的最长公共子序列并输出。 分析:先求出最长公共子序列的长度,然后再根据最长公共子序列的长度逆序求出最长公共子序列。#include <cmath>#include <queue>#include <vector>#include <cstdio>#include <string>#include <cstring>#include <
2016-07-16 17:10:54 1284
原创 CodeForces 691C Exponential notation 模拟
CodeForces 691C Exponential notation 模拟题目链接:CodeForces 691C Exponential notation 模拟题意: 给定一个长度为N的数字,转化为 标准的科学计数法形式。N最大可达1e6。要考虑前置0 和 后置 0 的特殊情况。 当指数为0 的时候,不输出指数部分。纯粹的模拟。分好情况就好了。我分了一下几种情况。输入为x。
2016-07-15 21:35:22 1096
原创 51Nod 1174 求区间最大的数 RMQ
51Nod 1174 求区间最大的数 RMQ题目链接:51Nod 1174在很多情况下, 我们求区间最大最小值都是用朴素的遍历算法,其复杂度是O(N), 当存在多次区间最大最小查询时,若查询次数为Q, 那么算法负责度就是O(Q*N) 。 当查询次数 Q 很大时,我们就需要对算法进行优化了。常见的优化方法有: 使用树状数组或者线段树,或者是使用专门的RMQ算法。RMQ是一种专门用
2016-07-15 18:21:19 1018
原创 codeforces 350B Resort 链表
Codeforces 350B Resort题目链接:VJudge CodeForces题意: 这个题目关键还是读题。给定的是一个有向图,图中有N个点,每个点的前驱节点只有一个,但是后继节点可以有多个。在这个给定的有向图中,找一个最长的链,这条链满足:该链上所有的点的出度小于等于1;而且终点必须是在若干给定的点集中。思路:首先将与出度大于1的点有关的所有有向边统统删掉。然后从终
2016-07-15 00:37:54 738
原创 ACM 常用几何基本数学公式
ACM常用数学公式1. 海伦公式求面积公式描述:公式中a,b,c分别为三角形三边长,p为半周长,S为三角形的面积。2. 点到直线的距离公式方法一:距离公式直接求 公式描述:公式中的直线方程Ax+By+C=0,点P的坐标为(x0,y0)。但是直线方程不是够直接。推荐使用方法二
2016-07-14 00:45:47 6082
原创 51nod 1459迷宫游戏 Dijkstra堆优化
51nod 1459迷宫游戏 Dijkstra堆优化题目链接:51nod 1459迷宫游戏题意:给定源点和终点, 每经过一个点就会得到该点对应的分数, 每走过一条边,就会增加相应的时间,让你求源点到终点的最短时间以及在该最短时间下的最终最大得分。分析: 依旧还是带权单源点最短路。还是用d[i].first表示从源点到i点的路径长度,用d[i].second表示从源点到i点的得
2016-07-13 14:43:20 824
原创 POJ 1077 Eight 八数码问题[康托展开 + BFS]
POJ 1077 Eight 八数码问题 [康托展开 + BFS]题目链接:Here!对于八数码问题,可能问题的关键不是BFS,而是对状态的标记。八数码的状态恰好是一个全排列,那么对于全排列,康托展开就是一个完美的哈希。康托展开:X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! ,其中a[i]为当前未出现的元素中是排在第几个
2016-07-12 21:15:51 1847
原创 hdu 1254 推箱子 BFS
hdu 1254 推箱子 BFS[含测试数据]题目链接: Here!思路:每次箱子移动之前,肯定都是人先到达箱子相邻的位置上,然后推动箱子移动一步。比如:箱子现在的位置是(x,y),如果箱子需要向(1,0)方向移动,即箱子要移动到(x+1,y),那么肯定需要先让人移动到(x-1,y)的位置上。如果这样每次箱子移动一步之前,就需要检查人是不是能够到达与之相邻的位置。然后需要注意的是B
2016-07-12 20:09:19 1564 1
原创 csu 1774 慷慨的奖励[双向链表]
1774: 慷慨的奖励Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 100 Solved: 5[Submit][Status][Web Board]Description对于csuxushu来说,能够在CSU(California State University)上学是他一生的荣幸,而通过CSU-ACM校队
2016-07-11 01:59:57 1100 2
原创 MyBatis 项目学习
MyBatis 项目学习一、项目目录结构首先对整个项目目录做个大致了解。①dao(Data Access Object)是数据访问对象,扮演MVC架构中的Model的角色,主要来封装访问数据的一些方法。②domain,有人也叫做entity或者pojo,这个包下面封装了一些数据实体。③mapping,这个包下面定义了数据库有关的映射文件(XML)。④conf.xml,这
2016-05-07 21:06:45 1635
原创 Java 自定义JDBC类库
import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.sql.Statement;import java.util.Array
2016-05-02 00:27:53 1698
原创 Java —— 表达式计算器
Java —— 表达式计算器在JavaScript中,我们知道有eval()这个函数,专门用来运行表达式字符串,用起来非常方便。但是在C++、Java中,就没有这么方便的工具给我们使用了。对一个表达式求值的步骤有两步:① 中缀表达式求前缀表达式② 前缀表达式运算求值这两个步骤分别利用两个栈,操作符栈与操作数栈;具体的讲解请参考《MFC 实现 加减乘除,括号,乘方的 计算器》
2016-04-09 19:24:15 3353 1
原创 C++泛型之求未知数组的长度
C++泛型之求未知数组的长度一般情况下,已知数组类型,我们求数组的长度的方法一般是:double A[] = {0,1,2,3,4};cout 当然也可以这样:double A[] = {0,1,2,3,4};cout 因此,求未知数组的长度的方法也很类似了,也有两种方式:法一:#include using namespace std;template inlin
2016-04-09 19:09:19 3051
原创 正则表达式的简单应用:使用正则表达式采集腾讯新闻
正则表达式的简单应用:使用正则表达式采集腾讯新闻正则表达式(Regular Expression)是比较繁琐的,要记的东西比较多,因此我一直都没有腾出时间专门好好研究一下正则表达式,最近网站需要用到PHP的CURL获取腾讯新闻,所以就认真地学了一下正则表达式。正则表达式是非常强大的,学会了正则表达式,在以后的文本匹配中,那是杠杠的。话不多说,进入正题。关于正则表达式的一些基础语法,大家可以
2016-03-31 20:14:49 5961 2
原创 POST & GET & Ajax 全解
GET&POST&Ajax 全解一、POST和GET的区别GET:GET方法提交数据不安全,数据置于请求行,客户段地址栏可见;GET方法提交的数据大小限制在255个字符之内。参数直接跟在URL后面清晰可见,该http请求的body部分也是空的,只有head部分显示了一个http的基本信息。POST:POST方法提交的数据置于消息主体内,客户端不可见,POST提交的数据大小没有限
2016-03-29 11:39:27 1472
原创 csu 1685: Entertainment Box【湖南省多校对抗赛3.6】multiset妙用
链接:点击读题Description:Input:Output:题意:给定N个任务,你可以最多同时一起进行K个任务,多进程嘛。然后每个任务都规定了开始时间和结束时间,求最多能够完成多少个任务。思路:首先,对N个任务,按照结束时间进行区间排序。然后考虑将任务分配到哪一个进程中去处理,第i个进程处理完结束时间用S[i]表示,显然,如果某一个任务的开始时,所有进程都未
2016-03-07 00:17:23 1925 3
原创 php封装生成验证码VerifyImage类
如今,在先用户权限登录模块的时候,我们会经常使用到验证码。因此我最近就封装了一个基于GD图形库的验证码生成类,方便日后的使用。生成验证码的步骤大概就是:一)产生一个随机的字符串;二)创建一个图像(imagecreatetruecolor),然后将字符串输出到图像中(imagestring或者imagettftext);三)对图像进行噪点干扰,比如加入一些线条或者像素点(imagel
2016-01-19 13:56:58 6898 1
原创 POJ 1426 Find The Multiple【dfs】
Find The MultipleTime Limit: 1000MSMemory Limit: 10000KTotal Submissions: 22877Accepted: 9431Special JudgeDescriptionGiven a positiveinteger n, wr
2015-11-25 11:34:40 1595
原创 Huffman 编码 + 优先队列【算法+数据作业题】
Huffman 编码【算法+数据作业题】题目:已知字符出现频率、固定编码如下表,请编程实现可变长度编码,要求采用Huffman编码。实现代码:#include #include #include #include #include #include using namespace std;struct Chara { char ch; in
2015-10-23 21:51:58 1861
原创 C++控制台下的贪吃蛇
C++控制台下的贪吃蛇这是我大一第一个学期无聊写的一个小游戏,我记得当时写这个的时候还是挺激动的,现在大二了,回过头来看看这些代码,太笨拙了,但是毕竟时间有限,而且这个是我写的第一个游戏,不想去改了,就这样了吧。贴个代码留做纪念吧!高手勿喷啊!!//2014.12.12日Mr.Xiong 制作//本人能力有限,如有疏漏,尽请见谅#include #include #include
2015-10-02 21:13:26 2995 1
原创 2015年长春区域网络赛 hdu 5444 Elven Postman【二叉树】
Elven PostmanTime Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 300 Accepted Submission(s): 162链接:点我,传送门Problem Description
2015-09-14 13:11:29 1871
原创 2015年长春区域网络赛 hdu 5441 Travel【并查集】
Travel Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) To
2015-09-14 12:17:24 2523
原创 hdu 2579 Dating with girls(2) 【经典三维BFS】
Dating with girls(2) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
2015-08-30 00:50:02 2644
转载 连通图的割点、割边(桥)、块、缩点,有向图的强连通分量
连通图的割点、割边(桥)、块、缩点,有向图的强连通分量 【本文摘选自百度文库】一、基本概念无向图割点:删掉它之后(删掉所有跟它相连的边),图必然会分裂成两个或两个以上的子图。块:没有割点的连通子图 割边:删掉一条边后,图必然会分裂成两个或两个以上的子图,又称桥。缩点:把没有割边的连通子图缩为一个点,此时满足任意两点间都有两条路径相互可达。求块跟求缩点非常相似,
2015-08-28 00:15:33 4934
原创 POJ 1144 & Uva 315 Network 【求割点数目】
NetworkTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 10855 Accepted: 5020链接:http://poj.org/problem?id=1144DescriptionA Telephone Line Company (TLC)
2015-08-27 12:44:27 2247
原创 ACdream 1213 Matrix Multiplication【水题 、 找规律】
Matrix MultiplicationTime Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others)链接:http://acdream.info/problem?pid=1213Problem Description Let us consider undir
2015-08-26 11:32:30 1796
原创 ACdream 1420 High Speed Trains【Java大数高精度 + 递推】
High Speed TrainsTime Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others)Submit Statistic Next ProblemProblem Description The kingdom of Flatland has n c
2015-08-25 23:48:50 2048
原创 poj 2406 Power Strings 【KMP + 技巧处理】
欢迎关注__Xiong的博客: http://blog.csdn.net/acmore_xiong?viewmode=Power StringsTime Limit: 3000MS Memory Limit: 65536KTotal Submissions: 38054 Accepted: 15753传送门
2015-08-23 03:58:53 2321 1
vim 配置(sublime样式)
2017-12-14
MFC表达式计算器
2017-05-22
Consolas 编程字体
2016-09-05
MyBatis 学习案例
2016-05-07
mysql-connector-java-5.1.38
2016-05-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人