- 博客(6)
- 资源 (1)
- 收藏
- 关注
转载 p游戏
program xiyou(input,output);varq,w,e,r,t,y,u,i,o,p,a,lv,s,d,f,djingyan,jingyan,g,h,j,k,l,money,rwjingyan,zwq,fwq,zhiye,gong,fang,bisha,xsheng,dsheng,qian,shangyao,bigshangyao:longint;z,x,c,v,b,n,m:
2017-11-08 18:18:53 1525
原创 luogu P3202 [HNOI2009]通往城堡之路
就是把所有的都先设为最差值; 然后一点点的往上调; 然后就是贪心; 定义 : low : 从n到现在i b[i]<=a[i] 的个数; up : 从n到现在i b[i]>a[i] 的个数;我们找一个 low-up 最大的后缀; 先上调; 调的距离是 min ( a[i]-b[i] ) |a[i]>b[i]; 因为这样我们 up 增加的值可以用 low 增加的值来抵消;
2017-11-03 07:20:04 330
原创 luogu P1484 种树
这个题的解法我是在河南听过的; 但是尴尬; 没好好听,所以忘了; 大致意思就是: 选k个数,要求选的任意两个数不能相邻; 大致是一种抵消的反悔方式;假设我们当前选了a[i],那么如果我们下次选了a[i-1] and a[i+1], 那么他们的代价差是:a[i-1]+a[i+1]-a[i]; 所以我们把 a[i] = a[i-1]+a[i+1]-a[i]; then a[i-1] and
2017-11-03 07:18:45 401
原创 luogu P3119 [USACO15JAN]草鉴定Grass Cownoisseur
这道题显然要先 Tarjan 缩点预处理; 这里就不多说了; 之后的点都是缩点之后点集;我们考虑两种点: <1> 以 1 为起点可以直接到达的; 我们这里叫它一类点; <2> 以该点为起点,可以直接到达 1 的; 我们这里叫它二类点;所以我们先用 spfa 处理出来从 1 到这两种点的点权值; 统计 ans 用; 然后枚举每一个一类点; 由于我们只能走一次反边; 所以我们所要
2017-11-03 07:17:28 285
原创 luogu P1155 双栈排序
我们可以考虑在什么情况下会需要双栈; middle big small ;这样的情况需要双栈; 因为我们 middle 入栈后; 不能直接弹出; 而是需要等待 small 进入; 所以这时候需要把 big 压入另一个栈中; 所以我们找这样的三个点; 将 middle and big 连边; 然后染色; 如果有相邻的两个点的颜色一样; 证明不合法; 否则,模拟;#includ
2017-11-03 07:15:53 251
原创 luogu P2375 动物园
这个题是KMP; 然后比较坑; 我们记录当前这个位置的 sum[] 是从那个位置转移过来的; 然后我们在求 next 的时候; 顺便把这个数组更新; 显然它会顺着位置前移; 最多一位;#include "iostream"#include "stdio.h"#include "algorithm"#include "cstring"#define II int#define C
2017-11-03 07:14:25 191
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人