其他
报数游戏
时间限制:1000 ms | 内存限制:65535 KB
难度:2
描述
n 个人站成一行玩一个报数游戏。所有人从左到右编号为 1 到 n。游戏开始时,最左边的人报 1,他右边的人报 2,编号为 3 的人报 3,等等。当编号为 n 的人(即最右边的人)报完 n 之后,轮到他左边的人(即编号为n-1 的人)报 n+1,然后编号为 n-2 的人报 n+...
最近在开始看nginx的事件...
树状数组有两种情况:插点问线和插线问点。这道题是插线问点。
因为树状数组最简单的作用是计算1~x的和,所以给出(a, b, c),表示(a,b)区间增加c, 那我们只需要在a点原来的基础上增加c,然后在b点原来的基础上更新-c,这样我们算最终结果的时候在(a, b)之间的就是增加了c,在区间之外的就是没有增加。
代码:
#include
#include
#define M 100000...
爬楼梯,一共有n阶,每次可以跨1阶或2阶,则爬到顶部一共有多少种爬法?...
题意:
要求构造一张n个点m条有向边的图,满足如下条件:
每对点间最多有一条边;
没有自环;
从任意一点出发,可以到达其他所有点;
m条边的权值为1,2,3,...,m,所有边的权值都不同;
从任意一点出发,最后要回到该点;
所有回路的权值和为3的倍数。
分析:
随便YY下就行了。
先构造1->2->3->4->...->n->1的环,边权依次为1,2,3,4,...,n;然后调整权值为n的边(当然也可已调整其他的边,这里只是为了方便),使得该环的权值和为3的倍数。然后按模3的余数对于剩下的边权分类,对于任...
分析:这道题因为是更新是和询问分开的,所以我们先更新,然后在将c[i]表示成1~i之间的和,之后减一下就好了。
#include
#include
#define M 1000005
#define INF 10003
int c[M];
int main(){
int x, y, z, n, s, q;
scanf("%d%d%d", &n, &s, &q);
memset(c,...
HDU 3103 Shoring Up the Levees(计算几何 求面积)...
HDU 3105 Fred's Lotto Tickets(数学题)...
题意:
给出一个无向图,每条边都已染色(黑/白),问是否存在生成树,该生成树的白色边的数量是正的fibonacci数。
分析:
所给数据中黑边为0,白边为1,那么生成树的白边数量即为生成树的权和。
然后YY了一个做法:求其最小和最大生成树,如果在这个范围内存在fibonacci数则存在。
靠谱的证明方法一直没想出来,这里随便解释下:
对于任意一颗非最大生成树,一定可以取一条白边换一条黑边使其仍然是一颗树。...