自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 单词游戏

QAQ 标签是记忆化搜索 我居然第一下想到的是状压DP? 先给出状压的解法 令DP[i][j]是状态i下最后一个单词是j是否可行 转移方程 dp[i][j|(1<< k-1)]=dp[i][j](前提是满足要求)#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#define ll l

2017-11-09 15:07:41 729

原创 Massacre at Béziers+赤の夜

等差数列求和,算出多少个整周期。 二分或解方程#include <cstdio>#include <iostream>#include <cmath>#define ll unsigned long longusing namespace std;ll n,t;bool check(ll a,ll d1,ll mid){ ll c=2; ll ans=a*mid+((

2017-11-08 14:29:03 349

原创 文化之旅

QAQ DFS 爆搜+剪枝#include <cstdio>#include <iostream>#include <cstring>#include <queue>using namespace std;bool vis[10001];bool ok[10001][10001];int dis[10001],w[1001];int head[200000],net[200000]

2017-11-08 09:13:13 336

原创 入阵曲+将军令

QAQ 性质,如果一个 a1%k==a2%k,那么这两个数的和就是k的倍数 预处理矩阵和,然后枚举2个行,1个列 转换成上面的问题#include <cstdio>#include <iostream>#include <cstring>#define ll long longusing namespace std;ll map[500][500],s[500][500];ll cn

2017-11-07 20:51:30 376

原创 斐波那契+数颜色

QAQ 设小兔子编号为x FBi<=x<=FBi+1FB_i<=x<=FB_{i+1} 那么x的父亲即为X−FBiX-FB_i 因为X之前有FBiFB_i生小兔啊 直接暴力模拟就行了#include <cstdio>#include <iostream>#define ll long longusing namespace std;ll fb[200];int get(ll x)

2017-11-07 17:05:48 286

原创 LG R7

T1 BFS暴力模拟#include <cstdio>#include <iostream>#include <queue>#include <cstring>#include <ctime>using namespace std;const int maxm=5100;int head[maxm],to[2*maxm],net[2*maxm];int cnt;struct nod

2017-11-06 16:25:16 273

原创 P2115 [USACO14MAR]破坏Sabotage

实数二分6的一批 QAQ 设前缀和为 S,则去掉 [i,j] 的平均值为 (S[n]-(S[j]-S[i-1])) / (n-(j-i+1)) <= X S[n] − S[j] + S[i − 1] <= Xn − Xj + X(i − 1) (S[n] − Xn) − (S[j] − Xj) + (S[i − 1] − X(i − 1)) <= 0 S[i-1]-X(i-1)

2017-11-05 16:23:09 343

原创 吃巧克力

QAQ 二分答案 坑点: 1:最后剩下的巧克力最后吃 ~~2:先输入总巧克力数,然后再输入天数(哭)~~ 3:别忘了搞方案(更傻)#include <cstdio>#include <iostream>#include <cmath>#include <algorithm>#define ll long longusing namespace std;ll g[99999],t

2017-11-05 15:33:33 339

原创 雷达安装

QAQ 将问题稍微进行转化:将基站设为覆盖半径为 D。 则问题变为:每个基站的覆盖区域必须要有雷达 又因为雷达只能放在 X 轴上,所以每个基站覆盖的其实是一条线 段。 则问题变为:每条线段上必须要要有雷达 先把线段按照右端点排序; 对于最早的没有雷达的线段,把一个雷达放在它的右端点。 更新后面的雷达多少被覆盖到#include <cstdio>#include <iostream

2017-11-05 14:46:51 429 3

原创 过河问题

QAQ 先假设有4个人 四人所需要的时间分别是1、2、5、8分钟 策略1:让最小的送最大的,尽量减少回来的时间 先让甲乙过去(2分钟),甲回来(1分钟),甲丙过去(5分钟),甲回来(1分钟),甲丁再过去(8分钟),总共需要17分钟就可以让四个人都过去。 策略2:让最慢的两个人同时过桥,让已经过桥的人来担负送手电筒的责任 而正确答案是第二种办法:先让甲乙过去(2分钟),甲回来(1分钟),丙

2017-11-05 11:26:19 576

原创 函数最值2

二分+DP 二分挺好想,只是DP 的 Check让人难以理解。 DP[i]表示i不改变的最小修改的元素个数转移?DP[i]=i-1//显然枚举1->i-1如果abs(a[i]-a[j])<=mid*(i-j) DP[i]=min(DP[j]+i-j-1)//改中间的数为什么?假如abs(a[i]-a[j])>mid*(i-j),不可能通过调整中间的数来使得区间内的值小于<=mid而当

2017-11-05 10:04:04 499

原创 函数最值

贪心,负数为搞成0不选即可。#include <iostream>#include <cstdio>#include <cstring>#define ll long longusing namespace std;const int maxm=110000;ll a[maxm],sum[maxm];char s[maxm];ll x=0;int main(){ int

2017-11-05 08:37:38 333

原创 Endless

性质: 偶数位上必须为0,统计奇数位上的方案 做法: 先把N转化成K进制表示。 如果最高位为偶数位,那么奇数为可以任选0-k 答案即为klen/2k^{len/2} 如果为奇数位,不能超过最大数,向后走计算,直到变为情况1#include <cstdio>#include <iostream>#define ll long longusing namespace std;ll b

2017-11-04 21:19:40 196

原创 NOIP之前在做什么?有没有空呢?可以来打板子吗?

N logN求最大上升子序列(LIS)#include &lt;cstdio&gt;#include &lt;iostream&gt;#include &lt;cstring&gt;#include &lt;algorithm&gt;#define ll long longusing namespace std;int rise[999999];int a[1100],cnt...

2017-11-04 18:50:12 837 3

原创 三向城+香兰子

三向城 题目描述 三向城是一个巨大的城市,之所以叫这个名字,是因为城市中遍布着数不尽的三岔路口。(来自取名力为0的出题人) 具体来说,城中有无穷多个路口,每个路口有唯一的一个正整数标号。除了1号路口外,每个路口都连出正好3条道路通向另外3个路口:编号为x(x>1)的路口连出3条道路通向编号为x*2,x*2+1和x/2(向下取整)的3个路口。1号路口只连出两条道路,分别连向2号和3号路口。 所

2017-11-04 18:44:15 442

原创 纸牌+后缀数组

纸牌 题目描述 在桌面上放着n张纸牌,每张纸牌有两面,每面都写着一个非负整数。你的邪王真眼可以看到所有牌朝上的一面和朝下的一面写的数字。现在你需要将一些牌翻过来,使得所有牌朝上的一面中,至少有一半(≥n/2)的数字是一样的。请你求出最少需要翻几张牌,或者判断无解。 注意:在翻牌的时候,你不能把牌扔掉,不能偷偷把别的牌放进来,也不能用笔涂改牌上面的数字。输入格式 第一行包含一个整数n

2017-11-04 14:02:52 798

原创 轮换+区间+收集果子

理解了题意就很容易模拟了。 从后向前,然后括号里面的不是位置,而是数。#include <cstdio>#include <iostream>#include <vector>using namespace std;int w[99999];int z[1001][1001];int w2[99999];int main(){ freopen("rotate.in","r"

2017-11-03 17:12:36 297

原创 立方体+仓库

立方体 cube.in/.out/.cpp 【问题描述】 在 n 维空间中,一个单位立方体由 2^n 个点组成。 他们的坐标形如 (x 1 ,x 2 ,…,x n ),x i ∈ {0,1}。 定义 n 维空间中两点的距离为其曼哈顿距离,点 p (p 1 ,p 2 ,…,p n ) 与点 q (q 1 ,q 2 ,…,q n ) 的距离为 ∑ n i=1 |p i − q i |。

2017-11-03 10:54:59 389

原创 水题

部分 分 DFS 50 贪心贪错了。正解: 贪心+牛B的数据结构贪心原则:先把第一个序列和第二个序列以x为第一关键字,y为第二关键字升序排列。对于第一个序列的一个X,在第二个序列中找出 所有 X小于第一个序列的X 在这些中去找一个Y与第一个序列Y最接近且小于第一个序列Y的元素。 也就是尽量重复利用第一个序列牌的X Y问题,怎么实现? 把所有小于小于x1的第二个序列元素的Y扔进一个set容器里

2017-11-02 17:05:42 225

原创 数列+车辆销售

这就是更相减损之术。 直接模拟太慢。 搞成辗转相除。 对于a,b不一样的数的个数为a/b 然后按求GCD的方法递归下去#include <cstdio>#include <iostream>#include <cstring>#define ll long longusing namespace std; ll ans=0;ll abs(ll x){ if(x<0

2017-11-02 16:48:27 233

原创 无题

k<=10 ! 并不是严格的区间第K大值问题。 只需要暴力维护前10大值就行了。push_down的时候,没有值的地方不可以加!#include <cstdio>#include <iostream>#include <cstring>using namespace std;const int maxm=1e5+1; struct node{ int maxn[11];

2017-11-02 14:46:24 191

原创 道路分组

道路 分组 【问题描述】 A国是一个由N个城市构成的国家。这N个城市从1到��进行编号。其中,城 市1是A国中资源产出最多的城市,而城市N是A国唯一的港口的所在地。由于这 两个城市之间距离很远,所以A国没有直接从城市1向城市N修建道路。不过, 很多城市之间修建了一些单向通行的道路。从城市1经过若干条道路,是可以到 达城市N的。 城市中的单向道路总共有M条,从1到M进行编号。为了方便管理

2017-11-01 16:05:38 630

原创 集合

集合 【问题描述】 给定一个可重集合,一开始只有一个元素 0 。然后你可以操作若干轮,每一 轮,你需要对于集合中的每个元素 x 进行如下三种操作之一: 1 、将 x 变为 1 + x 。 2 、将 x 分裂为两个非负整数 z y,,且满足 x=y+z。 3 、什么都不做。 每一轮,集合中的每个元素都必须进行上面三个操作之一。 对于一个最终的集合,你的任务是判断至少进行了多少轮。 【

2017-11-01 13:54:15 510

空空如也

空空如也

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

TA关注的人

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