自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Little_boy_z的博客

↖(^ω^)↗

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

原创 POJ2348 博弈论

a,b (a>b)分两种情况①a>b且a<2b. 也就是说当前人只有一个操作,那就是a-b。也就变成了(b,b-a)留给下一个人。这是一个完全固定的取法,每个人都只能是a-b。也就是说一旦到了这种情况了,答案就固定了,我们只需要往下推得到最终结果即可。②a>b且a>=2b.这种情况下我们有很多很多操作,可以a-b,a-2b,a-3b。。。。我们假设最多取kb个,那么我...

2018-02-22 21:24:36 235

原创 poj2484 博弈对称

好神奇..对于环形的,我们可以考虑对称的问题。如果总数为偶数,先手怎么做,后手就跟着在相反的方向怎么做,最后1个永远都是后手拿走。如果总数为偶数,先手怎么做,后手就跟着在相反的方向做相反的数量。之后就和偶数一样了,最后1个永远都是后手拿走。也就是只要旗子大于2,永远后手赢!...

2018-02-22 20:35:07 254

原创 硬币游戏1 博弈论

Alice和Bob在玩这样一个游戏。给定k个数字a[1],a[2],…,a[k]。一开始,有x枚硬币,Alice和Bob轮流取硬币。每次所取硬币的枚数一定要在a[1],a[2],…,a[k]当中。Alice先取,取走最后一枚硬币的一方获胜。当双方都采取最优策略时,谁会获胜?题目假定a[1],a[2],…,a[k]中一定有1。限制条件: 1<=x<=10000 1<=k<=1...

2018-02-22 20:25:32 1076

原创 包含容斥原理+模运算

#include <iostream>  #include <algorithm>  #include <cstdio>  #include <cstring>  #include <string>  #include <cmath>  #define maxn 500  using namespace std;  int n...

2018-02-22 18:38:23 182

原创 poj3680 网络流离散化最大覆盖

他说每个点都不能被k个区间覆盖。也就是说每个点最大流量为k,所以i-1到i的流量为k,费用为0.我们在把输入数据的区间放进去,费用取负数。源点指向1,n指向汇点,流量都为k。如果有一个1-4的区间,我们选择了,之后1肯定被占用了1个流量,1一旦被占用了,代表着2,3都被占用了。#include <cstdio>#include <algorithm>#include &lt...

2018-02-14 20:04:12 309

原创 poj 3057 Evacuation 拆点+二分图匹配

由于每时刻每个门都只能有一个人通过。那么我们就把门拆成N的,分别代表N的时刻。如果某个人能在A时刻到达这个门,那么从A时刻到最后时刻的这个门都与这个人相连接。这样来进行二分匹配。之后从小到大枚举所有的门,累计到达的人数。所有人到达,即可。#include<cstdio>#include<cstring>#include<vector>#include<qu...

2018-02-14 17:37:27 244

原创 poj 3686 时间片的网络流

有N个订单和M个机器,给出第i个订单在第j个机器完成的时间Mij,每台机器同一时刻只能处理一个订单,机器必须完整地完成一个订单后才能接着完成下一个订单。问N个订单完成时间的平均值最少为多少。把每个工厂分成n个,每个代表某时刻,某时刻的工厂只能执行一个。这样解释就很合理了。但是费用怎么求呢。对于某个工厂,T=(z1) + (z1+z2)+ (z1+z2+z3)变形得到 T=1*z3  + 2*z2 ...

2018-02-12 21:51:56 252

原创 HDU-4614 Vases and Flowers线段树 二分

普通的区间修改的线段树,加上了二分。操作是从a开始放b个。我们首先搜寻a到n有几个空位置cnt,不等于0就可以继续往下走(题意说能放几个算几个)之后我们要找a之后的第一个空格。也就是我们a到x中只有一个空位置。这个x我们二分求,x就是我们的最左端。之后我们要找最右端,就是从a开始,我们要找min(b,cnt)个。 也就是a到x有min(b,cnt)个。x同样是二分即可。#include <c...

2018-02-12 17:21:43 201

原创 Sorting by Subsequences CodeForces - 844C

You are given a sequence a1, a2, ..., an consisting of different integers. It is required to split this sequence into the maximum number of subsequences such that after sorting integers in each of the...

2018-02-11 21:56:38 444

原创 hdu 3449 Consumer 有依赖关系的背包

先默认把所有的主件都买上,之后01附件的。最后比较不买主件的额即可#include<stdio.h>  #include<string.h>  int dp[11000][11000];//前i个箱子花费j元所得的价值  int n,t,box,num;   int main ()  {      while(cin>>n>>t)      {   ...

2018-02-11 20:00:32 191

原创 最佳课题选择 多重背包

#include<iostream>  #include<algorithm>  #include<cstring>  #include<cstdio>  using namespace std;  long long sum(int x,int y)  {      long long s=1;      while(x)      {      ...

2018-02-10 21:35:00 251

原创 codefcodeforces 845D Driving Test

这道题完全败在不能理解题意上..另外还有就是逻辑思维.①如果当前改变车速,我们要对比从出发到现在所有的限速标志,如果超速则+1.一直遍历到第一个不超速就停止。这个很重要,因为这个逻辑自己想想,不管前面如何,限速是向“后”看的,不管以前的。②加上新的限速标记,要对比当前车速,如果超了则+1.没超才加入栈当中,不然会重复记录。③不能超车要累积,并且遇到可以超车,则累计的全部变为0第一点是最重要的,不...

2018-02-10 20:14:06 302

原创 Rectangles CodeForces - 844B

You are given n × m table. Each cell of the table is colored white or black. Find the number of non-empty sets of cells such that:All cells in a set have the same color.Every two cells in a set share ...

2018-02-10 18:27:10 289

原创 J - The Meaningless Game CodeForces - 834C

     if(a*a%b == 0&&b*b%a == 0) 这一步特别重要例如3,7. 他们的积是21.符合要求3*3*3=21.但是应该输出no。因为7和3无法由k累乘获得。我们要保证a和b有同一个约数。#include<cstdio>#include<iostream>#include<algorithm>using namespace ...

2018-02-10 13:56:47 157

原创 hdu 4341 Gold miner 分组背包

题意:矿工起初在(0,0)位置,有n种金矿,给出每种金矿的坐标,花费时间和价值。在同一条线上的金矿必须先抓近的再抓远的,若近的不抓没办法抓远的。要求在T时间内获得的最大价值。完全没有想到使用分组背包来做哎... 你可以这样想,同一斜率下的金矿看成一组,只能选一个。其实明明可以都抓到,为啥只能选一个。因为如果你想拿后面的,前面的必须拿到。所以我们处理一下,拿到第二个的花费和价值都加上第一个的。以此类...

2018-02-09 18:31:41 183

原创 hdu 1712 分组背包

有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。这些物品被划分为若干组,每组中的物品互相冲突,最多选一件。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。类似01背包,01是枚举每个物体,这个是先枚举每一个小组,在小组里枚举每一个物体。主要注意的是 小组枚举要在体积里边,这样才能当前体积只放一个小组里的物体#include <stdio...

2018-02-09 18:16:35 168

原创 算法提高 金明的预算方案 有依赖的背包

问题描述  金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”。今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子:主件附件电脑打印机,扫描仪书柜图书书桌台灯,文具工作椅无  如果要买归类为附件的...

2018-02-09 18:10:06 129

原创 HDU 2159 FATE 二维费用背包

Problem Description最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务。久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级。现在的问题是,xhd升掉最后一级还需n的经验值,xhd还留有m的忍耐度,每杀一个怪xhd会得到相应的经验,并减掉相应的忍耐度。当忍耐度降到0或者0以下时,xhd就不会玩这游戏。xhd还说了他最多只杀s只怪...

2018-02-08 21:41:03 164

原创 poj 1742 多重背包 (单调队列优化)

DescriptionPeople in Silverland use coins.They have coins of value A1,A2,A3...An Silverland dollar.One day Tony opened his money-box and found there were some coins.He decided to buy a very nice watch...

2018-02-08 19:39:44 431

原创 岳麓山上打水 DFS+完全背包

描述今天天气好晴朗,处处好风光,好风光!蝴蝶儿忙啊,蜜蜂也忙,信息组的同学们更加忙。最近,由于XX原因,大家不得不到岳麓山去提水。55555555~,好累啊。信息组有一个容量为q升的大缸,由于大家都很自觉,不愿意浪费水,所以每次都会刚好把缸盛满。但是,信息组并没有桶子(或者瓢)来舀水,作为组内的生活委员,你必须肩负重任,到新一佳去买桶子。新一佳有p种桶子,每种桶子都有无

2018-02-07 20:12:42 567

原创 新年趣事之打牌 记录路径+数量判断的01背包问题

描述过年的时候,大人们最喜欢的活动,就是打牌了。xiaomengxian不会打牌,只好坐在一边看着。这天,正当一群人打牌打得起劲的时候,突然有人喊道:“这副牌少了几张!”众人一数,果然是少了。于是这副牌的主人得意地说:“这是一幅特制的牌,我知道整副牌每一张的重量。只要我们称一下剩下的牌的总重量,就能知道少了哪些牌了。”大家都觉得这个办法不错,于是称出剩下的牌的总重量,开始计算少了哪

2018-02-07 18:23:02 324

原创 搭建双塔 DP问题

描述2001年9月11日,一场突发的灾难将纽约世界贸易中心大厦夷为平地,Mr. F曾亲眼目睹了这次灾难。为了纪念“9?11”事件,Mr. F决定自己用水晶来搭建一座双塔。Mr. F有N块水晶,每块水晶有一个高度,他想用这N块水晶搭建两座有同样高度的塔,使他们成为一座双塔,Mr. F可以从这N块水晶中任取M(1≤M≤N)块来搭建。但是他不知道能否使两座塔有同样的高度,也不知道如果能搭

2018-02-07 17:04:46 511

原创 poj1948 二维01背包

题目给一些木棒,要求全部用上形成三条边,问能形成的三角形最大面积是多少?一般的做法是只管一个,这次我们是管两个。dp[i][j],表示第一条边为i,第二条边为j的情况是否存在。不需要计算第三条边,因为第三条边就是sum-i-j。对于当前的一根木棒,我们按照正常的01背包做法for(int i=0;ifor(int j=sum/2;j>=0;j--) //第一个木棒。为什么是

2018-02-07 16:35:48 191

原创 hdu1195 Open the Lock 双向BFS

看http://blog.csdn.net/liuqiyao_01/article/details/8892261终于看懂双向BFS的具体做法了。准备两个队列,分别放出发点和终点。之后while(){   BFS(0)   BFS(1) //分别代表两个点出发遍历。}对于每一个bfs,首先看看是否上一个bfs已经找到答案了,如果找到了,这个就不需要遍历了。之后就

2018-02-05 21:07:48 195

原创 Codeforces 919D - Substring 有向图判环+dfs/dp 经典!!

D. Substringtime limit per test  3 secondsmemory limit per test      256 megabytesYou are given agraph with n nodes and m directed edges. One lowercase letter is assigned to each n

2018-02-04 20:29:51 359

原创 poj 分桶法和平方分割

#include  #include  #include  #include  using namespace std;  const int B = 1000 ;  const int MAX_N = 100000;  int nums[200000];  int L[10000];  int R[10000];  int K[10000];  int

2018-02-02 20:33:15 237

原创 二进制枚举法(常用!!)

#include using namespace std;int main(){    int n;    cin>>n;    for(int i=0;i    {        for(int j=0;j        {            if(i>>j&1)            {                cout 

2018-02-01 19:45:38 344

原创 超大01背包问题(二分)

#include   #include   #include   using namespace std;  const int N = 50;  const long long INF = 0x3fffffff;  typedef long long LL;  int n;  LL w[N], v[N];  LL W;  pair  pi[1   

2018-02-01 19:41:45 849

原创 poj2785 二分查找

输入n,表示a b c d 四个集合都有n个元素。之后每行输入4个集合中的一个元素。求这四个集合每个集合中拿出一个数相加等于0的组数。思路如果直接搜,复杂度为O(N^3),时间不满足要求。 折半搜索比较适合,把4个数字分成两份,分别两两求和,得到两个长度n*n的一维数组,排序后比较进行匹配即可。 另外这个题还可以用hash,具体参考:POJ2785 4 Values who

2018-02-01 19:28:14 336

空空如也

空空如也

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

TA关注的人

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