「JOI 2017 Final」绳】的更多相关文章

loj 首先,所有位置最多被染色一次,因为要染多次的话,还不如一开始就染成最终的颜色.并且你可以一开始就染好色 因为最终长度为2,那么如果染完后这个序列可以被折完,那么首先最多只有两种颜色,还有就是要满足对于所有同色极大联通块长度都要是偶数,不过第一个和最后一个长度可以为奇数 证明的话,先证充分条件,即这样子一定合法.可以搞出一个方法,每次只操作后面.先把最后面一个连通块长度缩成1(这样一定最优),然后因为接下来一个连通块长度为偶数,所以可以把接下来那个轴对称翻过去,然后重复这个操作直到长度为2…
题意 loj 做法 首先我们观察到最后能折起来的充要条件是: 只有两个颜色,除首尾外,所有颜色块内的数量为偶数 因为为偶数,我们进一步推论: 所有颜色块起始位置奇偶性相同 然后因为增与减都会有相同花费,不失一般性,只考虑将必须保留的\(c\)增加更多的位置 而增加的位置只在\(c\)颜色块的两边 分类讨论起始位置的奇偶性即可…
「JOI 2017 Final」JOIOI 王国 题目描述 题目译自 JOI 2017 Final T3「 JOIOI 王国 / The Kingdom of JOIOI」 JOIOI 王国是一个 HHH 行 WWW 列的长方形网格,每个 1×11\times 11×1 的子网格都是一个正方形的小区块.为了提高管理效率,我们决定把整个国家划分成两个省 JOI 和 IOI . 我们定义,两个同省的区块互相连接,意为从一个区块出发,不用穿过任何一个不同省的区块,就可以移动到另一个区块.有公共边的区块…
题目传送门 这道题开始看起来会很晕...\(qwq\).首先我们要明确题目中的海拔&&温度.温度是受海拔影响的,每次改变的是海拔,我们求的是温度. 我们开始读入的时候便可以处理出开始\(N\)位置的温度以及各个位置的海拔差.每次读入影响的是一段区间,区间内的相对海拔是不变的因此温度也不会变.只有区间的边界可能受到影响.因此我们只要处理边界就行了:这便是差分的思想. 比如有\([l,r]\)区间需要处理,那么我们把\(l\)位置的原答案减去,把\(l\)位置的海拔改变,并加上新答案.再对\(…
分析 二分答案 判断左上角是否满足 为了覆盖所有范围 我们依次把右下角,左上角,右上角移动到左上角 代码 #include<bits/stdc++.h> using namespace std; ][],n,m,Ans=1e9+,mx,mn=1e9+; inline bool ck(int x){ int i,j,k,l=mn+x,r=mx-x,lim=m; ;i<=n;i++){ ;j<=lim;j++) if(a[i][j]<r)break; lim=min(lim,j-…
分析 我们发现到达一个点一定是先快车再准快车再慢车 于是快车将1-n分为多个区间 每次取出每个区间当前能到达的点的数量 选剩余时间贡献最大的的一个取得贡献并且再能到达的最远点建立准快车 代码 #include<bits/stdc++.h> using namespace std; #define int long long ],t[],now[],Ans; priority_queue<int>q; signed main(){ int i,j,k; scanf("%ll…
分析 我们发现改变一个区间实际上只有两个端点的贡献变换 代码 #include<bits/stdc++.h> using namespace std; #define int long long ],s[],x,y,z,n,m,q,i,j,k,Ans=; signed main(){ scanf(],&s[]); ;i<=n;i++)scanf("%lld",&a[i]); ;i--)a[i]-=a[i-],Ans-=a[i]*s[a[i]>];…
LOJ#2351. 「JOI 2018 Final」毒蛇越狱 https://loj.ac/problem/2351 分析: 首先有\(2^{|?|}\)的暴力非常好做. 观察到\(min(|1|,|0|,|?|)\le 6\),我们只需要推出一个\(2^{|0|}\)和\(2^{|1|}\)的容斥式子 而这个式子也是很好推的. 考虑子集反演: \(f(S)=\sum\limits_{T\subseteq S}g(T)\) \(g(S)=\sum\limits_{T\subseteq S}(-1…
LOJ#3014. 「JOI 2019 Final」独特的城市(长链剖分) 显然我们画一条直径,容易发现被统计的只可能是直径某个距离较远的端点到这个点的路径上的值 用一个栈统计可以被统计的点,然后我们把这棵树长链剖分,每次在所有轻儿子中找深度最大的,去掉距离u小于这个深度的栈里的点,然后去计算u的重儿子 然后去掉距离u小于重儿子深度栈里的点,但是要再把u加进去,再遍历u的其他儿子 最后重新去掉u,计算答案,用直径两端当根都做一遍,取深度较大的那个 统计的话直接在外面开一个数组,弹出弹入的时候判断…
[题解]LOJ2759. 「JOI 2014 Final」飞天鼠(最短路) 考虑最终答案的构成,一定是由很多飞行+一些上升+一些下降构成. 由于在任何一个点上升或者下降代价是一样的,所以: 对于上升操作来说,只要保证前面飞行合法就不需要上升.当且仅当我飞不过去了才上升. 对于下降操作来说,只要我不会越过目标点就不需要下降.当且仅当我会越过目标点才下降. 也就是说,上升和下降操作是不需要手动进行决策的,不存在一种更优解使得这种解通过提前上升或者下降来使得时间花费缩短.因为假设存在一种"更优解&qu…