摘要:
CF_85D 这个题目可以用sum[cur][i]表示第cur个节点所辖区间的下标模5为i的整数之和,这样只要再加一个表示节点所辖区间的整数数目的标记num[cur],每次就可以方便的计算出sum[cur][i]的值了#include<stdio.h>#include<string.h>#include<stdlib.h>#define MAXD 100010struct Question{ char b[5]; int x;}question[MAXD];int N, num[4 * MAXD], tx[MAXD], X;long long int sum 阅读全文
摘要:
ZOJ_3511 一种可行的思路就是如果我们把切蛋糕的方案排个序,每次切下来一块就算一下这块的边长,而且这一块必须不会再被切到。 为了实现上面的思路,我们不妨把每次切的方案记作(x,y),且x<y,那么很显然有一种排序方式是一定符合要求的,即按y-x的值由小到大排序。 接下来的问题就是怎么算边长了。实际上可以发现边长的数量是等于点的数量,于是我们不妨用线段树记录一下x、y之间点的数量,每切一刀就相当于把x+1、y-1之间所有的点删掉了,这样我们只要查询x、y之间点的数量,就可以将其作为我们当前切下来的这块蛋糕边的数量。最后蛋糕还剩一块没有统计,再看一下最后还剩多少个点就行了。#inclu 阅读全文