题意:有个沙漏,一开始bulb A在上,bulb B在下,A内有a数量的沙子,每一秒会向下掉落1.然后在K个时间点ri,会将沙漏倒置.然后又有m个询问,每次给a一个赋值ai,然后询问你在ti时刻,bulb A的沙子数.保证A和B的总沙子数为X. 函数ft(x)表示t时刻,初始bulb A中的沙子数为x时,当前的bulb A中的沙子数是多少. 最开始时函数恰好为f(x)=x. 然后在第一次翻转之前,函数会逐渐向下移动变为<2>的样子,然后在翻转之后,函数又会逐渐向上移动,直至变成<3>…
[链接]点击打开链接 [题意] 你有一个沙漏. 沙漏里面总共有X单位的沙子. 沙漏分A,B上下两个部分. 沙漏从上半部分漏沙子到下半部分. 每个时间单位漏1单位的沙子. 一开始A部分在上面.然后在r1,r2,....rk时刻,会把沙漏翻转一下. 给你Q个询问,每个询问两个数字ti,ai; 表示一开始A部分有ai个单位的沙子,问你ti时刻,A部分有多少沙子. [题解] 我们设f[i]表示初始A部分有i个单位的沙子,t时刻A中剩余的沙子数目,并假设X=7; 我们先来模拟一下这个过程,右边的加号和减号…
Problem Statement We have a sandglass consisting of two bulbs, bulb A and bulb B. These bulbs contain some amount of sand. When we put the sandglass, either bulb A or B lies on top of the other and becomes the upper bulb. The other bulb becomes the l…
题意:给你一个排列a,每次可以交换相邻的两个数.让你用最少的交换次数使得a[i] != i. 对于两个相邻的a[i]==i的数,那么一次交换必然可以使得它们的a[i]都不等于i. 对于两个相邻的,其中一个a[i]==i,另一个a[i]!=i的数,一次交换也必然可以使得它们的a[i]都不等于i. 于是可以把序列划分成多段连续的a[i]==i的段落,它所贡献的交换次数就是[(长度+1)/2]. #include<cstdio> using namespace std; int n,a[100005…
AtCoder Regular Contest 069 F Flags 二分,2-sat,线段树优化建图 链接 AtCoder 大意 在数轴上放上n个点,点i可能的位置有\(x_i\)或者\(y_i\) 思路 首先最大值最小,考虑二分答案. 如何check呢. 只有两个坐标,考虑2-sat. 可是边有点多,存不下来,考虑线段树优化建图. 如何建图. 先按照做坐标排序,我们有两个点的范围 [id[x]-mid,id[x]+mid],[id[y]-mid,id[y]+mid]. 这个显然是z选了,区…
AtCoder Regular Contest 082 D Derangement 与下标相同与下个交换就好了.... Define a sequence of ’o’ and ’x’ of length N as follows: if pi ̸= i, the i-th symbol is ’o’, otherwise the i-th symbol is ’x’. Our objective is to change this sequence to ’ooo...ooo’.• If the…
我都出了F了……结果并没有出E……atcoder让我差4分上橙是啥意思啊…… C - Together 题意:把每个数加1或减1或不变求最大众数. #include<cstdio> #include<algorithm> using namespace std; int read_p,read_ca; inline int read(){ read_p=;read_ca=getchar(); ') read_ca=getchar(); +read_ca-,read_ca=getch…
题意:平面上给你N个点.对于一个“凸多边形点集”(凸多边形点集被定义为一个其所有点恰好能形成凸多边形的点集)而言,其对答案的贡献是2^(N个点内在该凸多边形点集形成的凸包内的点数 - 该凸多边形点集的点数).问你N个点的所有凸多边形子点集的贡献之和是多少. 因为是2的多少次方的形式,容易发现,它其实是一种在集合内取点的方案. 于是对于N个点的任意一个子集而言,只要其凸包面积非零,它就会对答案恰好贡献1.因为你把它的凸包上的点拿出来当成一个“凸多边形点集”,把剩下的点当成一种取点方案,这样是不重复…
题目传送门:https://arc074.contest.atcoder.jp/tasks/arc074_d 题目大意: 给定一个\(H×W\)的网格图,o是可以踩踏的点,.是不可踩踏的点. 现有一人在S处,向T移动,若此人现在在\((i,j)\)上,那么下一步他可以移动到​\((i,k)\)或\((k,j)\)上,\(k\)任意 问最少需要将多少个o改成.,可以使这个人无法从S到达T,输出最少需要更改的数目:如果无论如何都不能使这个人无法从S到T,则输出\(-1\) 这个模型就是最小割啊--我…
题目传送门:https://arc081.contest.atcoder.jp/tasks/arc081_d 题目大意: 给定一个\(n×m\)的棋盘,棋盘上有一些黑点和白点,每次你可以选择一行或一列,将上面所有的颜色取反,问若干次操作后可以得到的最大全黑子矩阵面积 首先我们可以发现,对于一个\(2×2\)的子矩阵,如果其内部的黑点个数不是偶数个,则这个子矩阵不能全部变成黑点,因此我们可以将所有黑点权值设为1,白点设为0,每个\(2×2\)子矩阵的左上角记录其内部的异或值 然后我们就可以随便写了…