自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 资源 (3)
  • 收藏
  • 关注

原创 hdu 1227 Fast Food

主题思想: 动态规划首先 对于一组升序的数,选择仓库在中位数的位置能是距离最短,这种思路以前遇到过。动态规划转移方程 : 就是这个不好想啊。 首先题目要求的是距离。 那么就用dp表示距离,因为好多题都是这样。 另外dp[i][j] 是一般动态规划的形式,且一般下标从1 开始,那么我们这里要想明白dp[i][j] 表示什么意思。 令dp[i][j] 表示前j个商店中有i个仓库时,距离的和

2017-08-31 22:41:47 211

原创 hdu 1226

主题思想 : 此題是BFS, 题目要求,是如果有多个解,输出最小的,所以,需要对m进行排序,去重,从小到大进行BFS,这样能保证最小,此外,还需要对0进行特殊处理。 最重要的一点是,为了避免MLE(memory limited exceed) ,需要利用秦九韶算法,进行余数判重。一个n表示成((((a0*c)+a1)*c+a2)*c) %n== (a0*c+a1)%n*c+a2)%nAC

2017-08-31 22:01:58 429

原创 python-igraph 安装过程

利用 sudo pip install python-igraph 报错,说是C core of igraph 没有安装。解决办法是:sudo apt-get install -y libigraph0-dev然后sudo pip install python-igraph

2017-08-30 16:05:55 2422 3

原创 hdu 1225

主题思想: 这道题不难,利用map统计下就可以了,但是老是出错。 但是错了好多次,背后的原因值得记录。 原因在于: 我利用c++ string 来组织队名,并利用scanf(“%s”) 进行输入, 错就在这里。string 类型不能用scanf(“%s”) 输入, scanf(“%s”) 属于c的部分,只能输入,char型数组, 而string 是c++的stl, 不同于char型

2017-08-29 21:45:51 567

原创 hdu 1224

主题思想: 我用的是记忆化搜索,网上其他人用的是求最长路径。 记忆化搜索也不难,主要是,开数组,记录结果。 ;另外,这题在输出路径上花了时间, 输出超时OLE,最后解决办法是,把一些设置为最小值的数,设置的尽可能小。要注意 dijkstra不能求最长路径, 单源最短路径SPFA算法,可以处理负权边。实现起来还算简单。SPFA算法代码:queue<int> q;int start;q.push(

2017-08-27 22:11:34 207

原创 hdu 1222

主题思想: 数论 线性同余参考博客: http://blog.csdn.net/y11201/article/details/8600337AC 代码:include includeusing namespace std;int gcd(int m,int n){if(n==0){ return m;}int ans=gcd(n,m%n);return ans;}int main

2017-08-27 16:59:22 278

原创 hdu 1217 arbitrage

主题思想 : arbitrage 套利问题,可以转化为求最长路径问题,首先把所有节点间的利率初始化为0,然后求出本身到本身节点最大路径值。 如果是求指定两点的套利问题,可以用dijkstra,针对本题,是求的任意货币间所以用 floyd 求任意两点之间最短路径。floyd 算法代码模板: 主要是初始化,和三层循环//floyd init be to 0;void inital()

2017-08-27 15:22:07 228

原创 hdu 1216

主题思想: 简单模拟,打表先执行一遍,算出第3000个数的大小,然后,以第3000个数,为上限,申请数组空间,和执行初始化,最后AC#include <iostream>#include<cstdio>#include<cstring>#include<cmath>using namespace std;const int INF=34000;const int maxn=3005;int

2017-08-26 22:13:48 223

原创 hdu 1215 七夕节

主题思想 ,求因子和,打表,求因子,还是需要点技巧的。求 maxn 以内数的因子和 代码: int m=maxn/2; memset(a,0,sizeof(a)); for(int i=1;i<=m;i++){ // j must can divide by i j%i is 0 for(int j=2*i;j<maxn;j+=i){

2017-08-26 18:42:46 189

原创 hdu 1124 圆桌会议

主题思想: 数学题, 给一个串数字组成一个环,12345…n 经过有限次相邻作为的对换, 变成 1,n,n-1,n-2,…2 如果是一个直线,不是一个环,根据直线长度n 需要的次数为n-1+n-2+n-3+…+1. 为 n*(n-1)/2 把一个环尽可能分成长度相等的两段, 分别计算两段直线的次数,和就是最小的操作。 参考博客: http://blog.csdn.net/lulipe

2017-08-26 17:51:21 272

原创 hdu 1213 How Many Tables

主题思想 : union set 找联通分量。 union set 代码:初始化: //init for(int i=1;i<=n;i++){ a[i]=i; b[i]=1; }int Find(int i){ if(a[i]==i){ return a[i]; } a[i

2017-08-26 16:40:07 218

原创 hdu 1212

主题思想: 秦九韶算法,同余定理。(a+b)mod n= a mod n+ b mod n (a*c) mod n= amodn *c mod n对于字符串,12345789 .. 转化为数字, 1*10^(n-1)+2*10^(n-2) 等于 (((1*10)+2)*10+3) …int num=0;for(int i=0;i<s.length();i++){ num=n

2017-08-26 13:21:54 242

原创 hdu 1211 RSA

主题思想: 数学题, 扩展欧几里得算,就线性同余方程。d=gcd(a,b)可以得到, d=ax+by ax+by=gcd(a,b) 依据扩展欧几里得可以求出系数,x,y ,注意,x,y可能小于0,a*dmod b=gcd(a,b)=1 特别的如果gcd(a,b) 等于1,则 是,a模b的乘法逆元。 参考博客: http://www.tuicool.com/articles/mINrQn

2017-08-26 12:58:31 240

原创 hdu 1210 洗牌

主题思想: 找规律跟踪第一张牌的位置,如果第一张牌回到了起点,则整体到了初始顺序。 对于第i张牌 if(i>n) 找规律发现,n+1,n+2,n+3其位置为1,3,5, =2*(i-n)-1 else i=2*iAC代码#include <iostream>#include<cstdio>#include<cstring>#include<queue>using name

2017-08-26 11:01:30 220

原创 hdu 1208

记忆化搜索 : 记忆化搜索的方式表现为 dfs+dp 记录已经搜索过的结果,如果搜索过,直接返回结果,否则才搜索。搜索类的题,好久没写,具体细节有些忘记了, dfs中如果需要回溯,则dfs调用后面再重新把走过的路标记为false。 比如常见的四个方向搜索for(int i=0;i<4;i++){ int xx=x+dir[i][0]; int yy=y+dir[i][1];

2017-08-25 21:10:12 257

原创 hdu 1205 吃糖果

主题思想 : 组合数学参考博客: blog.csdn.net/qinmusiyan/article/details/8104448 如果最多种类糖果的个数 为maxn,则maxn 个糖果至少需要maxn-1个挡板,也就是其他种类的糖果。 如果 sum-maxn#include <iostream>#include<cstdio>using namespace std;int main(

2017-08-24 20:43:12 163

原创 hdu 1203

经典动态规划 : 是一个背包问题。 如何选择使机会最大。 这是一个经典问题。 需要在重头考虑一下。 01背包 完全背包等思考过程。

2017-08-23 21:39:05 262

原创 hdu 1202

主题思想 坑主要在于,输入的学分可能是0 ,如果所有的学分都是0,即学分和为0的话,则认为是没有GPA 输出-1 AC代码:#include <iostream>#include<cstdio>using namespace std;double getGPA(double score){ if(score>=90) return 4.0; else if(score>=80)

2017-08-23 21:08:38 219

原创 hdu 1201 18岁生日

这是一个具有常识性的数学问题主要考虑,出生年份是在3月前,还是在3月及3月以后  如果他的生日在1、2月,那么就以当前年为起始年份,如果今年是闰年就要加一了;  如果他的生日在3月及以后,当前年是不是闰年没有影响,下一年作为起始年份考虑。 参考博客:http://www.cnblogs.com/ACDoge/p/6133186.htmlAC代码:#include <iostream>#inclu

2017-08-23 20:25:34 194

原创 hdu 1198

主题思想 : 这个题目就是求有多少个联通分量。用union Find结构很容易做到union find 核心代码,带优化版本int a[maxn];int cnt[maxn]; // 优化使用的,用来计数,一个根下有多少个节点。// initfor(int i=0;i<maxn;i++){ a[i]=i; cnt[i]=1;}int find(int v){ if(

2017-08-20 20:58:22 234

原创 hdu 1196 lowest bit

主题思想 :求lowestbit ,这是树桩数组里面的基础函数。 思路就是求一个数的二进制表示中,从右向左数,从0开始计数,第一次遇到1时,1所处第k位, 2^k的值。 或者说,从右向左数,遇到1为止,0的个数为k,2^k 或者说,从右往左数,遇到1为止,截断 这个二进制字符串所表示的整数。 比如 6 二进制为 110。 那么k为 1, 2^1 =2 或者10这个二进制字符串所表示的

2017-08-20 16:00:08 200

原创 hdu 1195 open the lock

主题思想 : 首先读题,求最小值,一旦出现求什么最小路径,最小值之类的,考虑BFS。 再看题目,经过某种变化,可以理解为经过某种状态,经过某种变化到达另一种状态,最后到达最终状态,最小步骤数,因此是一道BFS题。 此外,由于要标记已经访问过的节点数,visited,而题目又是一个字符串形式的四位数,因此把字符串对应的数字作为状态的唯一标志,来标记是否访问过。AC代码:#include<iostr

2017-08-20 15:39:18 210

原创 hdu 1181

主题思想 BFS, 因为DFS时报stack溢出,所以改用BFS,就好了 注意清空初始条件。AC代码#include <iostream>#include<cstdio>#include<string>#include<cstring>#include<vector>#include<queue>using namespace std;const int maxn=27;vector

2017-08-19 22:06:54 248

原创 hdu 1180

主题思想 : BFS ,这里有个注意的情况是除了上下左右可以走,也可以不走即可以停留,所以需要把地图上可以停留的点,单独在push进队列。 再一个注意的点就是,当是楼梯时,是根据刚到达的时间,进行变向的,也就是说,到达楼梯需要爬的时间,正好是上一步结束的时间。AC代码:#include <iostream>#include<cstdio>#include<queue>#include<str

2017-08-19 20:47:06 232

原创 hdu 1179

二分图最大匹配AC 代码#include <iostream>#include<cstdio>#include<vector>#include<cstring>using namespace std;const int maxn=105;bool visited[maxn];int matched[maxn];vector<int> wizard[maxn]; int n,m;bool d

2017-08-17 22:31:18 183

原创 hdu 1178

此題有纪念意义:如果两个int数很大,结果需要放到double型里面, 那么第一步请先乘以 1.0,转化成double型否则可能中间结果溢出,导致得不到正确答案 比如 int n;// n可能很大,double sum=0;sum=n*(n+1)*(n+2)/6.0;如果我们不在第一步乘以1.0,那么n*(n+1) 可能就已经溢出,结果自然是错误的,所以正确的写法是。sum=1.0*n*

2017-08-17 21:56:30 269

原创 java classpath

java project 中,有一些配置文件需要放在正确的地方,或者说,找一些文件时需要提供正确的路径。如果是普通的java project ,那么classpath 根目录就是 src如果是maven 项目,则路径是src/main/java 或者是src/main/resources

2017-08-17 17:56:44 170

原创 spring bean 声明学习

(1) 通过注解的方式 自动装配 @Component和config 类 启用 @Configuration 和@ComponentScan(basePackageClasses={a.class,b.class})(2) java config 不启用@ ComponentScan 只用@Configuration 结合@Bean(name=”xx”) 显式声明

2017-08-17 15:26:42 148

原创 hdu 1176

动态规划状态转移方程: 有三种状态,可以保持不动 ,也可以在下一秒时间走一步:向左,向右,特殊的 如果走到两端,则减少了一种情况。 由于申请的数组大。 走到最右端,再走,默认值是0, 所以可以一并处理。但是走到最左端,如果再向左走,下标变成-1 ,会出界。状态转移方程: dp[x][t] 表示t时间在x位置if(x==0) dp[x][t]+=max(dp[x+1][t+1],dp[x][t+

2017-08-16 22:26:27 186

原创 hdu 1175

主题思想 :BFS,已经做了好几道BFS,结果这道还是没写出来, 写BFS ,要考虑好,跳过的条件,分开下,首先判断,是否跳出格子,然后判断是否可以跳过其他条件,再判断是否到达 目的地 再判断,是否访问过,进行加入。bool bfs(){ Node p; p.x=sx; p.y=sy; p.flag=-1; p.t=0; queue<Node> pq;

2017-08-16 20:58:34 212

原创 hdu 1173

数学题 ,因为只能正方向行走,所以总距离dist=sum{|x-xi|+|y-yi|,i=1..n} 所以x为xi中的中位数,y为yi中的中位数时,总距离最小代码:#include <iostream>#include<cstdio>#include<algorithm>using namespace std;const int maxn=1000005;double xp[maxn];

2017-08-16 11:41:28 256

原创 hdu 1172

主题思想:暴力枚举,对每一个四位数进行判断,是否全部满足猜到的情况。AC代码:#include <iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn=105;struct Node{ int a; int b; //the number of that a has equal w

2017-08-16 11:29:29 186

原创 hdu 1171 背包

多重背包我擦,TLE ,N次,最后是因为自己读题忽略一个条件,遇见负数就终止结果自己根据用例,判断成遇见-1了,雪崩。!!总结一下,如果TLE 原因可能如下: 1,程序确实超时, 2. 程序结束条件不对,检查跳出循环的条件。 套用模板 while(scanf(“%d”)!=EOF){ if(n<0) break;}01背包for(int i=1;i<=n;i++) for(int v=V

2017-08-15 23:11:47 212

原创 spring aop 定义通知失败,报奇怪的错误,什么 inner bean 之类的

解决方案: 添加依赖apsectjweaver.jar <dependency> <groupId>org.aspectj</groupId > <artifactId> aspectjweaver</artifactId > <version> 1.8.7</version > </dependency>

2017-08-15 16:55:24 280

原创 maven 3 新特性记录一

maven打包可执行jar。 maven版本更新,造成了网上的资源,网上的教程,乃至解决办法,你都不知道是新版本还是旧版本,这里记录下。 比如就是创建一个项目 新版本: mvn archetype:generate 旧版本mvn archetype:createmaven打包可执行jar。默认情况下,maven通过mvn package 或者mvn clean install 生

2017-08-15 15:07:07 263

原创 maven 创建spring工程遇到的问题

利用maven构建基于spring的项目时,遇到一个问题,这个问题好坑啊? 这个问题也许别人根本就不会遇到。The type org.springframework.core.NestedRuntimeException cannot be resolved. It is indirectly referenced from required .class files解决办法:检查所依赖的sping

2017-08-15 14:11:21 281

原创 hdu 1166

经典RMQ问题 解决方案: 树状数组,或者线段树 只要是能用树状数组解决的,肯定都能用线段树解决。 这里先写用树状数组解决的,然后再写用线段树的。树状数组代码: 核心代码就是lowbit,以及常用的求和和更新操作。int lowbit(int x){ return x&(-x);}int sum(int n){ int ans=0; while(n!=0){

2017-08-14 21:00:56 154

原创 import 和import static

java5 的新特性。 静态导入, import static import 用来导入其他包下面的类或这方法。而import static 可以导入路径下的静态方法,这样的好处是通过静态导入,不再需要类限定名,可以直接使用其他类下的静态方法,就像是自己本类的静态方法一样。所以称之为静态导入。

2017-08-14 14:36:27 302

原创 Junit 学习总结(一)

还得从头来,一步一步扎实的学啊。 勿在浮沙驻高台。先是记录性质,有空再整理吧(当说出这句话时意味着十有八九是不会整理了)首先从引入包开始。 使用junit 一般会使用这句 import org.junit.Test; 为什么要引入这句呢? 而不是 import junit.framework.Test; 呢??org.junit.Test和 junit.framework.Test的不

2017-08-14 11:46:15 408

原创 hdu 1163

主题思想: 9余数定理 一个数各位数字之和如果不是一位数,则继续对结果执行求各位数字之和。最后得到一个一位数。这种计算操作称为求一个数的各位数字之和。 一个数各位数字之和等于对9取余数,如果余数是0,则各位数字只和是9。快速幂求模定理。 a^b if b==2k+1 a^b =a^k*a^k*a else if b==2k a^b=a^k*a^k快速

2017-08-13 11:50:42 274

学习vim 编辑器 第7版

学习vim 编辑器,最新版,vim学习必看。包含了vim的各种使用技巧。

2017-11-14

深入浅出iphone开发中文版

head first iphone programming 中文版

2016-09-26

网络水晶头接法

网络水晶头的接法,再也不用发愁水晶头不会接了

2014-07-08

空空如也

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

TA关注的人

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