CodeForces 1107 - G Vasya and Maximum Profit 线段树
题目传送门 题解: 枚举 r 的位置。 线段树每个叶子节点存的是对应的位置到当前位置的价值。 每次往右边移动一个r的话,那么改变的信息有2个信息: 1. sum(a-ci) 2.gap(l, r) 对于第一个东西,我们直接对[1,r]区间内的所有值都加上a-ci就好了。 对于第2个修改的值,首先要明白的是,这个值只会对[1,r-1]内的值存在影响。 并且可以发现,每一段区间的这个gap值每次更新完之后是从左到右递减的,所以我们可以用一个单调栈来维护这个gap值。 代码: /*
code by:
yield和生成器, 通过斐波那契数列学习(2.5)
实现斐波那契数列的集中方法 返回一个数 def fib(max):
n, a, b = 0, 0, 1
while n < max:
print(b)
a, b = b, a+b
n += 1
fib(5) 返回列表 def fib(max):
res = []
n, a, b = 0, 0, 1
while n < max:
res.append(b)
a, b = b, a+b
n += 1
return res
fib(5) 使用可迭代
电脑设备对于IT人员,犹如武器对于士兵
本人做了多年Softwarer,写些感受。 比我们早的老一代程序员更是用自己的健康总结了一些经验。 先说关于健康方面: 程序员要长期坐着,这对健康损害很大,颈椎腰椎,心肺能力都会衰减。以前只是听说,自己过了30岁,真的是出现各种各样病痛。 所以,从公司角度,对员工,应该配置合理的办公桌和办公椅,对于桌子有高度要求和腿部的进深空间要求,对椅子要选择人体工学椅,有腰托和扶手最重要。人体工学椅的价格,国产的话大概1千-3千,外国的有的高达8千到1万一把椅子,如米勒。 最佳坐姿是半躺式,高屏幕,会对颈
CSU-1985 驱R符
CSU-1985 驱R符 Description 阴阳师中有三中稀有度的式神R,SR,SSR,其中R的稀有度最低,每次抽符,会随机得到一种式神,然而子浩君对R式神已经深恶痛绝。 某天,子浩君突然发现,有一种护身符,叫做驱R符,为什么会驱R?因为很多的R式神有密集恐惧症,而这个符上有很多的交点。 驱R符主体是一个圆环构成,圆周上面有n个位置可以绑上细线,可以这样把n个位置两两连接,然后在这个圆上产生很多的交点。 现在,子浩君想要做一个驱R符,他想知道,如果他现在的圆上有n个绑定细线的位置(位置可
【题解】Luogu P4069 [SDOI2016]游戏
原题传送门 看到这种题,想都不用想,先写一个树链剖分 然后发现修改操作增加的是等差数列,这使我们想到了李超线段树 先进性树剖,然后用李超线段树维护1区间最小,这样就做完了(写码很容易出错) 复杂度为\(O(n\log^3n)\),少见的复杂度啊qaq,但常数不用怕 #include <bits/stdc++.h>
#define ll long long
#define N 100005
#define M 100005
#define inf 123456789123456789LL
#de
CodeForces 1107 F Vasya and Endless Credits
题目传送门 题解: 需要注意到的是 每个offer都获益都是会随着时间的增加而渐少(或不变)。 所以我们可以知道,最多在第n个月的时候这个人会买车离开。 solve1:最优2分图匹配 我们可以把每个月都和每个offer建边。 val[i][j]代表的是离开前倒数第i个月获取了第j个月的offer, 所以边权就是 max(0ll, a-min(j-1,k)*b). 最后跑一遍km。 所以复杂度是 n^3. 代码: 1 /*
2 code by: zstu wxk
3 time: 2019/
centos7.2下安装Mysql笔记
centos7.2下安装Mysql笔记 安装 MySQL 适用于 CentOS 7.0 或以后版本:
yum install mariadb mariadb-server
适用于 CentOS 6.8 或以前版本:
yum install mysql mysql-server mysql-devel
启动 MySQL 服务 适用于 CentOS 7.0 或以后版本:
systemctl start mariadb.service
适用于 CentOS 6.8 或以前版本:
se
CSU-2049 象棋
CSU-2049 象棋 Description 車是中国象棋中的一种棋子,它能攻击同一行或同一列中没有其他棋子阻隔的棋子。一天,小度在棋盘上摆起了许多車……他想知道,在一共N×M个点的矩形棋盘中摆最多个数的車使其互不攻击的方案数。他经过思考,得出了答案。但他仍不满足,想增加一个条件:对于任何一个車A,如果有其他一个車B在它的上方(車B行号小于車A),那么車A必须在車B的右边(車A列号大于車B)。 现在要问问你,满足要求的方案数是多少 。 Input 第一行一个正整数T,表示数据组数。( T<=
Ahoi2014&Jsoi2014 支线剧情
题目描述 题解: 每条边至少经过一次,说明经过下界为$1$。 然后套有源汇上下界最小费用可行流板子。 口胡一下。 此类问题的建图通式为: 1.假设原来的边流量上下界为$[l,r]$,那么在新图中建流量上界为$(r-l)$的边; 就是必须流的先流完,不一定的一会再算。 2.统计一下每个点流入的$l$之和$ind$以及流出的$l$之和$otd$,设$d=ind-otd$; 若$d>0$,则建一条从新源点到该点的、容量为$d$的边,表示减下界的时候多减了,要加回来; 若$d<0$,则建一条从该点到新
解决java:错误: 编码 GBK 的不可映射字符 (0xAF)
使用sublineText3编写了java代码,通过DOS 编译 提示 错误:编码GBK的不可映射字符 解决方法: 使用 javac -encoding UTF-8 Demo03.java 即可完成编译、
【题解】Luogu P1471 方差
原题传送门 简单进行推导之后,就能发现很妙的结论 用线段树维护区间和,区间平方和就珂以算出结果 #include <bits/stdc++.h>
#define db double
#define N 100005
using namespace std;
int n,m;
db a[N];
db sum1[N<<3],sum2[N<<3],tag[N<<3];
inline void pushup(register int x)
{
sum1[x]=sum1[x<<1]+sum1[
Android-Java静态代码块&局部代码块
静态代码块: 静态代码块什么时候执行,是由当前类被加载进内存的时候,什么时候当前类被加载进内存? 答:例如 描述好了Student对象,当 new Student(); 的时候,第一步:是把Student类加载进内存,第二步/或者是后续的工作才是 实例化操作处理等; 描述Student对象/实体: package android.java.oop05;
public class Student {
private int id = 01;
private String na
CSU-1163 寒衣调
CSU-1163 寒衣调 Description 男从戎,女守家。一夜,狼烟四起,男战死沙场。从此一道黄泉,两地离别。最后,女终于在等待中老去逝去。逝去的最后是换尽一生等到的相逢和团圆。 某日两人至奈何桥前,服下孟婆汤。 每滴孟婆汤都有强度不一的药效,设一碗孟婆汤共N滴(0<N<100000),其中第i滴(0≤i<N)用b[i]表示。 孟婆汤的药效与原料有关,设熬制前同样有N滴原料,第i滴原料用a[i]表示,0≤a[i]<2^32。 药效b[i]的计算方法为b[i]=(a[0]a[1]...*
算法74----手串(莫队算法)
一、题目: 作为一个手串艺人,有金主向你订购了一条包含n个杂色串珠的手串——每个串珠要么无色,要么涂了若干种颜色。为了使手串的色彩看起来不那么单调,金主要求,手串上的任意一种颜色(不包含无色),在任意连续的m个串珠里至多出现一次(注意这里手串是一个环形)。手串上的颜色一共有c种。现在按顺时针序告诉你n个串珠的手串上,每个串珠用所包含的颜色分别有哪些。请你判断该手串上有多少种颜色不符合要求。即询问有多少种颜色在任意连续m个串珠中出现了至少两次。 输入描述: 第一行输入n,m,c三个数,用空格隔开
【题解】Luogu P4097 [HEOI2013]Segment
原题传送门 这珂以说是李超线段树的模板题 按着题意写就行了,时间复杂度为\(O(n\log^2n)\) #include <bits/stdc++.h>
#define N 40005
#define db double
#define getchar nc
using namespace std;
inline char nc(){
static char buf[100000],*p1=buf,*p2=buf;
return p1==p2&&(p2=(p1=buf)+fre
今日推荐
周排行