• 2024-03-07P1550 [USACO08OCT] Watering Hole G
    原题链接题解最小生成树的应用。这道题多转了一个弯,这道题其实多了一个结点(代表一个虚拟水井),每块田打井的费用可以过渡到从虚拟水井运水的费用,然后再套用最小生成树的模板即可。code #include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;structNode{
  • 2024-03-06P1550 [USACO08OCT] Watering Hole G
    原题链接题解思维转换,想象井里的水都来自山上,并把山看成一个点,那么这道题就变成了最小生成树简证最小生成树原理:按边权排序,然后遍历,如果这条边的两个点之前每连过,那么就连上,因为这就是这两个点所在集合之间的最短路径了,不然这条边没必要加,因为已经联通了算是一种贪心?code#i
  • 2024-02-24Watering an Array
    我们发现每次操作二之后序列都会变成全\(0\),所以全\(0\)序列是一个非常特殊的序列,我们考虑从他开始的最大收益是多少由于我们接下来只能实施操作一,所以我们可以发现,任意一个时刻我们都不可能有两个位置满足\(a_i=i\),可以反证,假设\(a_i=i,a_j=j,j>i\),那么对于\(j\)来说,肯定被加了\(
  • 2024-02-23Watering an Array
    原题链接题解由于执行收获操作后所有数组清零,清零后的数组最快捷的加分方法是加一收获一,所以就是第一次加多少次然后第一次加完最多收获\(n\)分,相当于清零后执行总共\(2n\)次所以只需要判断第一次加&[0,2n-1]&次加后收获时能收获多少就行了code,注意细节#include<bits/
  • 2024-02-05树莓派上基于Python控制GPIO
    树莓派上基于Python控制GPIO希望做到可以自动给阳台的花儿浇水~有以下几点:控制GPIO的拉高/拉低,并保持一段时间间隔加锁,避免重复有日志记录具体情况#!/usr/bin/envpython3#-*-coding:UTF-8-*-importRPi.GPIOasGPIOimporttimeimportfcntlimportloggingcl
  • 2023-12-25CF1917 C Watering an Array
    Link首先我们研究全是0的情况,显然的,每次操作2最多可以得到1分。那么显然的,不如直接一次操作一一次操作二,这样是最优的。然后再研究初始数组,很难用很快的方式得到应该从什么时候开始第一次操作二。不过可以注意到,第一次操作2最多可以得到n分,那么我们再\(2n+1\)天以后进行第一次