自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Blackieonly的博客

态度决定一切。

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

原创 洛谷 P1022 计算器的改良

巨大的模拟(其实也比较小)。等式左边的常数是减掉的,右边则加上,总体效果相当于把左边的常数移到右边去。左边的字母系数加上,右边的减掉。总体是把右边的未知数移到左边来。程序里面para是常数,cof是系数。change那个是串转数。然后ans一除就好了。。不过话说C++的setpercision不能保留末尾的0,调printf调了半天。。#include#inclu

2016-11-12 17:25:28 475

原创 CF 567B Berland National Library

大水题一道。用tmp记录当前在阅览室的人的人数。如果遇到直接出去没进来的,就在已有的ans上+1。表示以前就在里面。表示纯模拟15ms就跑完了。。#includeusing namespace std;const int maxl=1000000;int ans,tmp,n,num;char a;bool flag[maxl+1];void read(){

2016-11-12 14:00:40 431

原创 CF 205B Little Elephant and Sorting

极其坑爹的一道题目啊。。一开始拿那什么判断下降子序列在那捣腾,心里想B组题目怎么这么难。。后来仔细一想,对于第i-1,i 和 i+1三个数,ans+=max(0,(a[i]-a[i-1]))+max(0,(a[i+1]-a[i]));为什么呢,因为如果后面的数比a[i-1]要小,那么在第一次a[i]升级为与a[i-1]相等的时候,顺便把他带上就行了,而且a[i+1]与[i]之间的差值并

2016-11-10 00:31:45 398

原创 洛谷 P1645 序列

炒鸡明显的贪心题,主要就想让一段区间与另一段里面重合的数越多越好。于是先按照区间右端排序,然后尽可能的把数都往右靠拢,最后与另一段区间的前面的重合。。然后可以用个flag来记录哪些数被选了什么的。#include#includeusing namespace std;const int maxn=1000,maxl=1000;int n,ans;struct no

2016-11-08 23:45:58 588

原创 洛谷 P1346 电车

稍微包装过一下的最短路。如果初始状态就是到达那个路口,就把权值搞为0,如果不是就搞为1;然后跑最短路,我用的是SPFA,不过100的数据怎么跑都行吧。。#include#includeusing namespace std;const int maxn=100;int n,a,b,k,map[maxn+1][maxn+1],que[100*maxn+1],head=

2016-11-07 23:52:47 433

原创 URAL 1860 fiborial

[Vjudge-URAL 1860 fiborial](http://vjudge.net/problem/URAL-1860)这道题目就有点麻烦了。。如果你去尝试模拟一下,你就会看到这个数中“包含”菲波那切数列。。但是在指数上。。就是说,fn=n^g1+(n-1)^g2+...+2^gn-1; 其中gi是菲波那切数列的第i项。那么将n质因数分解,只能用线性筛素数,nlog

2016-11-03 23:08:30 483

原创 洛谷 P1744 特价采购商品

纯正的最短路。。构图然后跑SPFA,没什么难点。主要是初始化一定要足够大,不然第三个点会被坑到。。#include#include#includeusing namespace std;int n,m,x[101],y[101],a,b,s,t,que[1001],head=1,tail=1;float map[101][101],dis[101];bool fl

2016-11-01 23:58:56 413

原创 洛谷 P1417 烹调方案

这题目实在太骚。。输入数据各种坑点。。乘法什么的要转成longlong。。反正坑点特别多,除掉坑点就是简简单单的DP#include#include#include#define ll long longusing namespace std;int t,n;long long int f[100001],ans;struct node{ int a; int b

2016-11-01 00:03:30 346

原创 USACO 牛的过山车

一开始脑子太抽,想枚举dp[i][j]表示长度为i时预算为j时能取得的最大fun值。但怎么可能这么写呢。理所当然写挂了。后来发现只要枚举预算就行了。废话因为铁路的位置是固定死的。。但一开始要按开始顺序排序。我又挂了一次在这里。第三次没特判,ans=0时要改成-1.又挂一次第四次终于好了。。。(这启示我们千万不要晚上码代码)#include#include#inc

2016-10-31 01:29:44 316

原创 CF 106C Buns 再解

学过了多维背包的蒟蒻终于会写这题了。。。就是用一个k来循环多次取,跟转化为01背包的时间复杂度会是一模一样的。。(30ms again证明了这一点)但空间效率却大大提高。原来7000多kb,现在8kb。。完全不是一个数量级的。总之这道题是很裸的多维背包。。#includeusing namespace std;int n,m,c0,d0,a,b,c[12],d[12]

2016-10-31 00:25:57 341

原创 USACO 木瓜的丛林

炒鸡基础的深度优先搜索。。看到洛谷的大牛分站还有这样的水题我好感动。。。!裸的深搜,或者你不回溯模拟也行。。上代码。#includeusing namespace std;int r,c,p[42][42],ans;void dfs(int x,int y){ ans+=p[x][y]; p[x][y]=0; if(x==r && y==c) retu

2016-10-29 15:51:58 670

原创 AHOI2016 迷宫

今年在考场上做这道题的时候还是初三,现在就变成高一了。。突然又看见这道题就突然想来AC一下。。表示这道骚题在考场上做的时候各种懵逼的并查集(脑子不好使)。虽然到现在我还坚信并查集一定能做出来。。好言归正传,此题的思路就是判断每一个圆是不是包含两个点。如果都包含,或者都不包含,则答案不变;如果只有一个点包含在里面,就只好ans++了。。当年是爆0了这题(其实也就今年)。现在做毫无

2016-10-28 22:34:54 610

原创 CF 106C Buns

裸的多维背包。。但本蒟蒻能看出多维背包但是写不出来。。于是想了个骚办法,就是把多维背包强制成01背包。。然后愉快的dp。。结果数据弱到跑完test总共才30ms。。完全不科学的最后一次显示running on test 38,这么多数据居然总共加在一起才30ms。。#includeusing namespace std;int n,m,c0,d0,a,b,c,d,do

2016-10-28 21:57:38 395

原创 洛谷 P1256 显示图像

炒鸡简单的广搜题。好像是SD的一道省选题(对没错好像是省选),叫“位图”吧。从图是1的地方开始搜,如果dis不是初始值的话已经被其他点搜到了。BFS保证的是最短搜索路径。上代码:#includeusing namespace std;int n,m;struct node{ int x; int y; char color; int dis;} ph

2016-10-21 18:58:14 832

原创 洛谷 P1656 炸铁路

拿到题目第一反应是对偶图,然而发现根本不是这样的。毫无思路的时候,发现数据只有150个。打了个暴力,没想到AC了。。而且最后一个点才跑了21ms。数据有点水。。枚举每一条边,然后炸掉,跑一边图,看看有没有点到不了。#include#include#includeusing namespace std;int n,m,a,b;bool map[151][151

2016-10-15 17:35:27 713

原创 洛谷 P2335 [SDOI2005]位图

炒鸡简单的BFS,把白色的先入队列,然后慢慢往外扩。BFS保证第一次触到一个点时,总是距离最近的。#includeusing namespace std;int n,m;struct node{ int x; int y; int color; int dis;} phonex[151][151];node que[22501];int head=1,t

2016-10-15 12:26:41 429

原创 洛谷 P1058 立体图

炒鸡好玩的一道题。主要就是先画后面的,再画前面的,这样前面的方块就会把后面的覆盖掉。于是就纯模拟。#include #include using namespace std; char a[301][301]; int n,m,b[51][51],high=300,len;//用high len分别储存长度和高度 void built(int x,int y

2016-10-15 12:20:36 601

原创 CF 278A Circle Line

然而是一道大水题。先把一圈加起来,然后判断直达和兜一圈子(直接相减得到)#includeusing namespace std;int n,d[101],sum,s,t,beg;void read(){ int i; cin>>n; for(i=1; i<=n; i++) { cin>>d[i]; sum+=d[i]; } cin>>s>>t

2016-10-14 23:43:34 608

原创 洛谷 P1378 油滴扩展

拿到题目没头绪,然后看到n枚举每个地方是不是可能放油滴。油滴半径不能小于0呀。。π的精确度得高一点,否则会被卡分。#include #include using namespace std; const float pi=3.1415926535; int n,a1,b1,a2,b2,num,ans=100000000,beg

2016-10-14 23:31:53 409

原创 CF 450B Jzzhu and Sequences

数学问题。看到题目第一反应是菲波那切数列,然而看到2*10^9的数据范围。。吓得不敢讲话。。直到我好好读了一遍题目。f[i]=f[i-1]+f[i+1]  移项,得到 f[i+1]=f[i]-f[i-1]就是 f[i]=f[i-1]-f[i-2]然后把前面几个列出来:f1;f2;f3=f2-f1;f4=f3-f2=-f1;f5=f4-f3=-f2;f6=

2016-10-14 22:54:04 281

原创 洛谷 P1063 能量项链

然而在提高组的动归里居然还有这样一道水题。把环拆成链,然后愉快的区间动归。枚举起始位置,枚举区间长度,枚举断开位置,然后找最大的方案记录下来。思路明了,十分简单。#includeusing namespace std;int len,head[1001],tail[1001],f[1001][1001],n;void read(){ int i,j,k,m

2016-10-14 21:58:50 441 1

原创 洛谷 P1510 精卫填海

一看就是典型的背包题。裸的背包题。。然而唯一的坑点就是体积大于剩下的坑也可以补上。(按理来讲应该塞不下去呀)但是写==确实只过了第一个点。#includeusing namespace std;int v,n,c,ans=-1;int volume[10001],energy[10001];//体积、体力 int f[10001];//然而开n^2的数组会炸空间复杂度

2016-10-14 21:34:26 409

原创 CF 37A Towers

然而这又是一道大水题。。啥也不说了,直接上代码。。#includeusing namespace std;int n,a;int f[1001];int ans,max1;void read(){ int i,j; cin>>n; for(i=1; i<=n; i++) { cin>>a; f[a]++; } for(i=1; i<=1000;

2016-10-13 23:28:34 670

原创 CF 66B Petya and Countryside

然而这是一道大水题。。主要思想就是以一个为中心,然后朝两边找。然而暴力的代码一点也不优美。于是我们想办法直接处理,用递推就可以解决。这是我在Code Forces里第一次交题目。。#includeusing namespace std;int n,a[1001],f1[1005],f2[1005],ans;void read(){ int i,j; cin>>n

2016-10-13 23:25:41 379

空空如也

空空如也

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

TA关注的人

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