基础算法(4) —— 浮点数二分模板

浮点数二分用二分的思想可以找出这个分界点。假设我们想二分出来红色(不满足条件的范围)这边的分界点:找一个中间值mid :l+r >> 1(因为是浮点数,所以可以严格的二分,即mid就是中点)写一个函数check()判断时mid时在满足条件(绿色)范围内,还是在不满足条件(红色)范围内。当区间长度很小的时候,可以近似的认为找到了答案,例:r-l ≤ 10−6^{-6}−6 (如果题目要求保留4位小数,则应该写到-6次方,比有效小数的位数多2)例题:用二分法做一个sqrt函数 (只
分类: 其他 发布时间: 09-07 22:49 阅读次数: 0

codeforces 371C.Hamburgers(二分模板题)

#include<iostream>#include<string>#include<cstring>#include<cstdio>#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0)#define int long longusing namespace std;int b, s, c;//B S C的数量int nb, ns, nc;//原有的B S C材料的数.
分类: 其他 发布时间: 09-07 22:49 阅读次数: 0

Array Cancellation(思维-反向思考)

https://codeforces.com/contest/1405/problem/B题意:给你一个和为0的数组,每次可以选择两个不同的数ai和aj​,使ai​减1,使aj​加1,如果i<j,操作免费,否则代价为1,求最小代价。思路:开始想树状数组动态处理差的和。写了发现不用这么麻烦。从头开始遇到正的数就累加,如果碰到负数,就能给尽可能给,最后剩下来的就是答案。考场上想的是从后往前思考,碰到了正数就加上去,碰到了负数也加上去,这样就相当于模拟了免费的过程(把正的合并,负的合...
分类: 其他 发布时间: 09-07 22:49 阅读次数: 0

Balanced Bitstring(思维-01串区间相等)

https://codeforces.com/contest/1405/problem/C给你一个字符串,可以将字符串中的问号变成0或1,问你是否能使字符串的每连续k段里的0和1数量保持相同。思路:感觉在cf的老题里面碰到过这个类似的题。(好像是个trick呢首先区间里的k长度内1和0数量相等,那么1和0的奇偶性也就是一样的。模拟的过程中发现如果当前出去了1个0或者一个1那么区间内1和0的数量遭到破坏,下一个进来的一定要能补充上去才能满足题目条件。所以移动的过程就知道了s[i]==s[j](if
分类: 其他 发布时间: 09-07 22:49 阅读次数: 0

Tree Tag(博弈,贪心,树的直径)

https://codeforces.com/contest/1405/problem/D题意:在一棵顶点为n的树上,Alice和Bob开始位于两个不同的顶点,轮流移动,Alice先手。移动时允许停留在同一个顶点上,如果无限步内Alice和Bob占据了同一个顶点,Alice胜,否则Bob胜,求胜者。思路:考虑YES/NO的单方面。考虑YES。根据样例,如果Alice能第一步抓到Bob,直接win。所以判Alice和Bob的dis是否<=da。直接用向上标记法求也可以,不必lca。然后看
分类: 其他 发布时间: 09-07 22:48 阅读次数: 0

Codeforces Round #668 (Div. 2)(A-D详解)

A:Permutation ForgeryB:Array CancellationC:Balanced BitstringD:Tree Tag
分类: 其他 发布时间: 09-07 22:48 阅读次数: 0

A. Recycling Bottles(坐标距离和转化)

https://codeforces.com/problemset/problem/671/A题目描述It was recycling day in Kekoland. To celebrate it Adil and Bera went to Central Perk where they can take bottles from the ground and put them into a recycling bin.We can think Central Perk as coordin
分类: 其他 发布时间: 09-07 22:48 阅读次数: 0

MSP430 G2553 矩阵键盘 无源蜂鸣器 电子琴

伪代码: while (1) { key = get_key(); //获取按键 if (key) { //设置蜂鸣器鸣叫频率 可以定时器中断做 可以PWM做 while (get_key()) ; //等待按键松开 //关闭蜂鸣器 } }
分类: 其他 发布时间: 09-07 22:48 阅读次数: 0

第十五届全国大学生智能汽车竞赛山东赛区国赛获奖队伍详细信息

第十五届全国大学生智能汽车竞赛山东赛区国赛获奖队伍详细信息 序号学校队伍组别奖项姓名类别1山东大学(威海)Lekima Storm基础四轮组一等奖崔凌参赛学生2山东大学(威海)Lekima Storm基础四轮组一等奖黄号参赛学生3山东大学(威海)Lekima Storm基础四轮组一等奖张桂宇参赛学生4山东大学(威海)Lekima Storm基础四轮组一等奖王小利指导教师5山东大学(威海)
分类: 其他 发布时间: 09-07 22:47 阅读次数: 0

全国大学生智能汽车竞赛山东省赛区获奖队伍信息

全国大学生智能汽车竞赛山东省赛区获奖队伍信息 序号学校队伍组别奖项姓名类别1山东大学(威海)Lekima Storm基础四轮组一等奖崔凌参赛学生2山东大学(威海)Lekima Storm基础四轮组一等奖黄号参赛学生3山东大学(威海)Lekima Storm基础四轮组一等奖张桂宇参赛学生4山东大学(威海)Lekima Storm基础四轮组一等奖王小利指导教师5山东大学(威海)Lekima
分类: 其他 发布时间: 09-07 22:47 阅读次数: 0

第十五届全国大学生智能汽车竞赛中小学生赛题组获奖队伍信息

第十五届全国大学生智能汽车竞赛中小学生赛题组获奖信息 序号学校队伍组别奖项姓名类别1青岛创新学校-高中一等奖孙彬航参赛学生2国科大(青岛)附属学校-高中一等奖侯奕宸参赛学生3山东省青岛第十五中学-高中一等奖潘文博参赛学生4山东省青岛第十五中学-高中一等奖周子涵参赛学生5山东省青岛第十五中学-高中一等奖王晓明指导教师6上海师范大学附属中学-高中一等奖周瀚轩参赛学生
分类: 其他 发布时间: 09-07 22:47 阅读次数: 0

【题解】CF1209D:Cow and Snacks

原题传送门对于同一只动物喜欢的两种点心,用并查集连边建好图后,对于一个点数>1的连通块,假设大小为xxx,用最优策略必定能满足x−1x-1x−1只动物,因为第一个来的必须取走两个,剩下的可以使得他们都只取走一个再转换一下思路,对于一个动物,如果他喜欢的两种点心尚未在同一个连通块里,那么他在最优策略下是一定能被满足的,那就答案+1,并且并查集合并然后我们求的是不能被满足的有多少Code:#include <bits/stdc++.h>#define maxn 200010us
分类: 其他 发布时间: 09-07 22:42 阅读次数: 0

【题解】LuoGu1512:伊甸园日历游戏

原题传送门dpdpi,j,kdp_{i,j,k}dpi,j,k​表示i年j月k日i年j月k日i年j月k日是否必胜dpi,j,k∣=dpi,j,k+1dp_{i,j,k}|=dp_{i,j,k+1}dpi,j,k​∣=dpi,j,k+1​dpi,j,k∣=dpi,j+1,kdp_{i,j,k}|=dp_{i,j+1,k}dpi,j,k​∣=dpi,j+1,k​判断一下日期合理性就好了Code:#include <bits/stdc++.h>#define maxn 2020u
分类: 其他 发布时间: 09-07 22:42 阅读次数: 0

【题解】NOIp模拟:最大公约数

@hzwer从大到小枚举答案gcd开桶统计每个数出现次数枚举gcd的倍数求到底有几个是gcd的倍数若大于kkk,则输出复杂度调和级数O(nlnn)O(nlnn)O(nlnn)Code:#include <bits/stdc++.h>#define maxn 1000010using namespace std;int n, m, cnt[maxn];inline int read(){ int s = 0, w = 1; char c = getchar(); fo
分类: 其他 发布时间: 09-07 22:42 阅读次数: 0

【题解】NOIp模拟:密码

题面考虑贪心逐位确定,比如对于第一位,先看看最近的aaa可不可以移动到当前位置上,可以就移动,否则就看看最近的bbb可不可以,以此类推如果最近的aaa确定为当前位上的字符,那么我们确定后面一位的时候,这个aaa不能用了,需要看第二近的aaa,这个需要用模拟链表实现对于判断这个字符时候能在限制步数下移动到当前位,可以用树状数组维护这个字符前面还剩多少字符Code:#include <bits/stdc++.h>#define maxn 100010#define int long l
分类: 其他 发布时间: 09-07 22:41 阅读次数: 0

【题解】LuoGu2865:[USACO06NOV]Roadblocks G

原题传送门求严格次小最短路直接用dijkstra求令disu,0dis_{u,0}disu,0​为最短路,disu,1dis_{u,1}disu,1​为次短路初始化只有dis1,0dis_{1,0}dis1,0​是0,其他都是inf对于一条边(u,v,l)路径长度为l(u,v,l)路径长度为l(u,v,l)路径长度为l若disv,0>disu,0+l,则disv,0=disu,0+l若dis_{v,0}>dis_{u,0}+l,则dis_{v,0}=dis_{u,0}+l若disv
分类: 其他 发布时间: 09-07 22:41 阅读次数: 0

【题解】LuoGu3275:[SCOI2011]糖果

原题传送门差分约束考虑如何连边,建立一个超级源点0addedge(0,i,1)addedge(0,i,1)addedge(0,i,1)对于接下来的关系opt=1,addedge(x,y,0),addedge(y,x,0)opt=1,addedge(x, y, 0),addedge(y,x,0)opt=1,addedge(x,y,0),addedge(y,x,0)opt=2,addedge(x,y,1)opt=2,addedge(x,y,1)opt=2,addedge(x,y,1)opt=3,
分类: 其他 发布时间: 09-07 22:41 阅读次数: 0

【题解】NOIp模拟:四轮车

在地图上散落着 n 个车轮,小 J 想用它们造一辆车。要求如下:一辆车需要四个车轮,且四个车轮构成一个正方形车轮不能移动你需要计算有多少种造车的方案(两个方案不同当且仅当所用车轮不全相同,坐标相同的两个车轮视为不同车轮)。30%的数据保证 n ≤ 30100%的数据保证 1 ≤ n ≤ 1000; |x|, |y| < 20000O(n2)O(n^2)O(n2)枚举两个点,计算出另外两个点,用二分求出另外两个点的方案数,用乘法原理乘起来,最终要除以2Code:#include
分类: 其他 发布时间: 09-07 22:41 阅读次数: 0

【题解】CF631C:Report

原题传送门如果我先做了一个[l,r][l,r][l,r]的操作,又做了一个[l,r+1][l,r+1][l,r+1]的操作,那么一开始的那个操作就没用了可以记录每个点最晚的操作,从后往前逐位确定即可Code:#include <bits/stdc++.h>#define maxn 200010using namespace std;int n, m, a[maxn], pos[maxn], type[maxn], Max, ans[maxn];inline int read()
分类: 其他 发布时间: 09-07 22:40 阅读次数: 0

【题解】NOIp模拟:比赛

比赛Description有两个队伍A和B,每个队伍都有n个人。这两支队伍之间进行n场1对1比赛,每一场都是由A中的一个选手与B中的一个选手对抗。同一个人不会参加多场比赛,每个人的对手都是随机而等概率的。例如A队有A1和A2两个人,B队有B1和B2两个人,那么(A1 vs B1,A2 vs B2)和(A1 vs B2,A2 vs B1)的概率都是均等的50%。每个选手都有一个非负的实力值。如果实力值为X和Y的选手对抗,那么实力值较强的选手所在的队伍将会获得(X-Y)^2的得分。求A的得分减B的得分的
分类: 其他 发布时间: 09-07 22:40 阅读次数: 0