自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Fighting

做一只勤劳的小蜜蜂,幸福才能揽入怀中。

  • 博客(23)
  • 收藏
  • 关注

原创 常见的Linux命令与shell语句整理

输出文件file的第10行内容。sed -n '10p' file输出文件file的第5行,第7行,第10行内容。sed -n '5p;7p;10p;' file输出文件file的第4到8行内容。sed -n '4,8p' file从file.txt文件里提取(xxx) xxx-xxxx or xxx-xxx-xxxx. (x means a digit

2015-04-27 18:55:59 4013

原创 SDUT:2879 Colorful Cupcakes(DP计数)

题意:给3种颜色的珠子围成一个环,要求相邻两个珠子的颜色不同,问一共有多少种情况。思路:背包计数问题。可先将环看作一个链,dp[i][j][k][l],i表示以第i种颜色为尾,j、k、l分别表示三种颜色的珠子有多少个。如果是链的话很容易建立状态转移方程。环的话要考虑首尾位置,实际上就是对于答案dp[0][v0][v1][v2]这种,要减掉所有以第0种颜色开头的情况,所以只需要将dp[0][1]

2015-04-27 11:35:21 571

原创 SDUT:2883 Hearthstone II(第二类Stirling数)

题意:将m个物品放入n个箱子之中,要求每个物体至少使用一次。问有多少种情况。思路:第二类斯特灵数。第二类Stirling数 S(p,k)   S(p,k)的一个组合学解释是:将p个物体划分成k个非空的不可辨别的(可以理解为盒子没有编号)集合的方法数。k!S(p,k)是把p个人分进k间有差别(如:被标有房号)的房间(无空房)的方法数。   S(p,k)的递推公式是:S(p

2015-04-23 20:03:17 540

原创 SDUT:2157 Greatest Number(中途相遇法)

题意:一些数,选4个(可重复),输出最接近给定数字的和。思路:经典题目,使用中途相遇法可做。先枚举两个数字,求和存入并排序。再枚举两个数字,根据缺少部分,二分之前的和,取最大值。STL是神器,要学会使用。#include #include #include #include #include #include using namespace std;typedef lon

2015-04-23 16:09:46 529

原创 CodeForces 501D – Misha and Permutations Summation(康托/逆康托展开+树状数组+二分)

题意:给两个排列,分别算出是第几小的排列,这两个数字求和以后再模n!得到一个数,输出这个数对应的排列。思路:很明显的康托/逆康托展开。难点在于如何快速求解康托/逆康托以及模n!上。在康托展开中,遍历每一位是在所难免的,时间复杂度是O(n),在统计比a[i]小的数字个数的时候显然不能遍历了,可以用树状数组加速,时间复杂度是O(lgn)。这里并不得到的数字加起来,因为可能达到n!,太大了,而是

2015-04-22 12:41:37 723

原创 ZOJ:3802 Easy 2048 Again (状态压缩)

题意:1维的2048。思路:很好的一道DP。可以观察如4、16、8这样的组合,其中的4就永远都不会被合并,因为以后的结果只能是越来越大。所以可以被合并的数列特征是递减序的,如32、16、4。这样我们可以以当前组合中的末尾递减序列为状态进行DP。这里的状态大小不是非常明显,仔细想想极限情况,有500个16,每2个16形成32,每2个32形成64…如此合并,至多就是16*500的状态,因此开8

2015-04-22 12:00:48 594

原创 HDU:4893 Wow! Such Sequence!(线段树单点更新+区间求和)

题意:执行相应的4种操作。思路:单点更新时求最近fib,维护fib的和及元素的和。注意初始化的时候要对每个0求fib。#include#include#include#include#include#include#include#include#define LL long long#define MAXN 100001<<2using namespace std;

2015-04-21 10:11:08 523

原创 SDUT:2408 Pick apples(贪心+完全背包)

题意:给一个大小为v的包,有三种苹果,分别给其价值和体积,问最多可装多少价值。思路:v高达10^8,直接完全背包是不行的。由于一共三种苹果,可以考虑优化。在苹果体积是三种苹果体积的乘积时,取可以得最大价值的那种苹果。这样优化以后v大小变成10^6,这样就用完全背包就行了。#include #include #include #include #include #include

2015-04-18 17:07:53 634

原创 HDU:4255 A Famous Grid(构造+BFS)

题意:给一个表,问两个位置之间的最短距离是多少,其中素数位置不能经过。思路:坐标范围是10000,也就是说这个表大约是100*100,当然题目中表是无穷大的,由于有些位置不能走实际上可能会大于100*100。这样构造一个大点的表判断一下素数位置,每次查询直接bfs求最短路即可。#include #include #include #include #include #includ

2015-04-18 14:31:44 960

原创 HDU:4252 A Famous City(单调栈)

题意:给一些从正面看得到的楼的高度,问最少可能有多少楼。思路:单调栈。用一个栈维护一个单调递增序列。如果栈空或栈顶小于当前元素可将当前元素压栈,如果小于栈顶元素则将栈顶元素弹出并将答案加一,相同则无视。注意存在0的情况,即如果楼的高度是0不需要将该数字压栈。#include #include #include #include #include #include #includ

2015-04-18 14:24:11 568

原创 HDU:4251 The Famous ICPC Team Again(划分树)

题意:给一组数字,多次查询求中位数。思路:划分树。#include #include #include #include #include #include #include using namespace std;const int maxn=100005;struct DivideTree{ int sorted[maxn],dat[20][maxn];

2015-04-18 14:18:22 497

原创 HDU:4249 A Famous Equation(数位DP)

题意:给一个表达式形如a+b=c,其中一些数字为?,问使表达式成立有多少种情况。思路:不太容易发现是一道数位DP。比较容易建立状态转移方程,dp[i][j][k][l]表示j(0表示不进位,1表示进位)使a的第i位为k,b的第i位为l的情况个数,这样可以计算得c的第i位。用线性时间枚举位数,10^2枚举过去状态,10^2枚举现在状态建立转移即可。最后累加求和。注意前导零的问题。给一组数据??+

2015-04-18 14:14:55 612

原创 POJ:1741 Tree(男人八题-树分治)

题意:给一棵树,问两个结点之间的距离小于等于K的有多少对。思路:男人八题之一。使用树分治解决。简单来说,对于一棵树的。那么答案分为三种情况,1,两个结点在该根结点的子树上,此情况递归解决;2,两个结点在根的两个子树上,对于这种情况,我们可以找出所有结点到该根节点的距离,这个过程是O(n),对距离排序(O(nlogn))以后,可以O(n)求出小于等于K的对数,但注意这种方法和情况1中有重复,要删

2015-04-15 22:03:44 651

原创 SDUT:2411 Pixel density

题意:给一句话,有屏幕尺寸和英寸,再输出一句话输出结果。思路:数值好算,关键在于字符串处理。其实也不难,要好好利用库函数。注意0的特殊情况。#include using namespace std;char word[30][30];double yc;int wp,hp;int main(){ int T,kase=0; scanf("%d",&T);

2015-04-13 08:04:15 506

原创 SDUT:2412 Fruit Ninja I(动态规划)

题意:一个切水果游戏。每秒出现一些水果,它们都在一条线上,有好水果和坏水果,好的可以加分,坏的减分,每次连续切好水果三个以上可以分数加倍。每秒只能切一次,每切一次要间隔m秒。问最多得多少分。思路:对于每一秒的时候,可以确定连续的好水果一定会一起切,可以合并。然后用最大连续数组和求解该秒可得最优解。然后再所有的时间内进行简单动规就行了。#include using namespace

2015-04-13 08:00:04 707

原创 SDUT:1143 Mine Number(二进制枚举)

题意:给一幅图说明周围的地雷数,要你输出地雷图,确保答案唯一。思路:枚举第一行的地雷,然后往下递推判断得到的地雷图是否符合原图要求。#include #include #include #include #include #include #include using namespace std; int n,m; char num_mat

2015-04-13 07:52:03 527

原创 UPC:2226 Contest Print Server(模拟)

题意:模拟。思路:注意比较坑的地方。如果Team1请求打印,而此时计数达到s,那应该先输出一个Team1 request 0 pages。#include #include #include #include using namespace std;int main(){ int T; scanf("%d",&T); while(T--) {

2015-04-07 21:59:33 658

原创 UPC:2225 The number of steps(概率DP)

题意:按题目要求问走出迷宫的期望。思路:比较明显的概率DP。#include #include #include #include using namespace std;double f[50][50];bool vis[50][50];int n;double a,b,c,d,e;double dp(int i,int j){ if(vis[i][j]) r

2015-04-07 21:57:23 482

原创 UPC:2224 Boring Counting(二分+划分树)

题意:给一串数字,每次查询区间内大于等于A小于等于B的数字个数。思路:二分+划分树。划分树可以求区间内第k小的数字,配合二分可以求到某个数字在区间内是第几小数字。#include #include #include #include #include using namespace std;const int maxn=50005;typedef long long LL;

2015-04-07 21:52:29 549

原创 UPC:2219 A^X mod P(预处理空间换时间)

题意:按公式求f[x],再按公式求结果。思路:直接搞的话f[i]可能高达10^9,n为10^6,即使用快速幂也会超时。用空间换时间是一种常见的降低复杂度的办法。对于任意一个数字X,它可以变成X=a*N+b(N为常数)。基于这个思路可以把f[n]=a*N+b,如果取N=10^5,那么可以保证a最大为10^4,b最大为10^5。这样A^f[n]=A^(a*N+b)=A^(a*N)*A^b=(A^N

2015-04-06 22:27:00 456

原创 UPC:2218 Thrall’s Dream(BFS)

题意:给一个有向图,问任意两点之间能否联通。思路:由于数据量不大,可以枚举每个点直接bfs遍历整个图,但这个过程有很多重复,可以加一些优化。比如说在当前枚举点x,它可达点y。如果y点之前已经枚举过那么就不需要再遍历y了,直接将y可达的点设为x也可达就行了。#include #include #include #include #include #include using na

2015-04-06 22:25:23 527

原创 ZOJ:2672 Fibonacci Subsequence(动态规划+hash)

题意:在给定的数组里,寻找一个最长的序列,满足ai-2+ai-1=ai。并输出这个序列。思路:很容易想到一个DP方程dp[i][j]=max(dp[k][i])+1. (a[k]+a[i]==a[j],1dp[i][j]表示序列最后两位是a[i],a[j]时的最长长度。这个方程状态是O(n^2),转移是O(n),总复杂度是O(n^3)会超时。进一步思考会

2015-04-06 22:15:27 1864

原创 POJ:3670 Eating Together(动态规划)

题意:每次可以改变一个数字,要求使给定的数列变成单调递增或递减,求最小操作数思路:简单动规。设dp[i][j]表示以第i个数为最后一个数且数值为j时候的最优解,就递增时而言,dp[i][1]可以从dp[i-1][1]转移,dp[i][2]可以从dp[i-1][1]、dp[i-1][2]转移,dp[i][3]可以从dp[i-1][1]、dp[i-1][2]、dp[i-1][3]转移,当然还要考虑

2015-04-03 23:01:19 1013

空空如也

空空如也

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

TA关注的人

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