分类: 未分类

544 篇文章

P1082 同余方程
这是道坑比数论题。 它是如此的坑以至于我没法写上过程 (太长了) 过程:大佬 代码:     1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 long long x,y; 5 long long a,b; 6 void ex…
P3383 【模板】线性筛素数
链接:P3383 --------------------------------------------- 这道题考的是一个线性筛,主要有两种:埃氏筛和欧拉筛 先说埃氏筛,埃氏筛很简单。只要检查每一个数。如果他是没有被标记,就证明他是一个质数。这样我们就需要把他的每一个数标记为合数,然后重复 极为简单 1 #include<bits/std…
P1195 口袋的天空
链接:P1195 这道题第一眼肯定能想到最小生成树,不过最小生成树最后就成了一个连通块。 哎,最后?我们想一下卡鲁斯卡尔算法,是一次加上一条边,而且这边的两端不再一个联通块中。 也就是说,我们的每一次操作,就相当于消除了一个连通块。 这样,我们在最后留下k个联通块不就可以了? 1 #include<iostream> 2 #includ…
P3379 【模板】最近公共祖先(LCA)
链接:P3379 【模板】最近公共祖先(LCA) 这道题我们要用到一种很神奇的东西,倍增。 首先,我们考虑一下最简单的做法,记录深度。然后先让询问的x,y中深度大的点往上爬,直到两个点深度一样结束。 然后两个点同时开始爬,当两个点相等时,就一定是公共祖先了 但是一个一个爬太慢了,怎么办呢? 我们就会用到一个东西,倍增。 每次增加2^k幂 没听懂?何…
P1119 灾后重建
题目链接:P1119 --------------------------------------- 简化题意: 这是一道floyed的题。但是有所不同的是,这道题里的点是有时间限制的。 所以说我们在做floyed的时候,我们不能直接枚举所有中转点,而是按照时间来进行。 以及,有可能出现询问的时候两个点没有修好,我们还要判断这个。 而且在这道题里,…
P5057 [CQOI2006]简单题
  链接:P5057 [CQOI2006]简单题 其实这道题是树状数组的模板题 看一下题意,如果用树状数组,我们很容易想到差分数组。但是一般的差分数组是不行的 因为只有零和一,所以对于每一次操作,实就是让它在0和1中循环。而且,很容易得到,对于一个点进行了奇数次操作,他就会被改变,而偶数次操作就不变,知道了这点,我们就可以用树状数组去维护…
Function and Function
If we define , do you know what function  means? Actually,  calculates the total number of enclosed areas produced by each digit in . The followi…
01背包们
01背包,是一个非常基础的东西 在此列出三种基本操作 1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int f[10000][10000]; 5 int v[100000]; 6 int t[100000]; 7 int n; 8 int T…
P4141 消失之物
链接:P4141 消失之物 -------------------------------------------------- 这道题确实很坑,在上课的时候,我们老师讲了一个分治的做法。 然而分治实在太玄学了。但是老师的课件上面还写了“有一种更简单的操作,但是没有拓展性。” 这种做法是什么呢? 非常简单,比如说我们要求出在…
P3368 【模板】树状数组 2
链接:P3368 【模板】树状数组 2 看一下模板一?请点击   好,这道题让我们实现区间修改和单点查询。但是根据:1中我们可以发现,树状数组的操作只有修改单点和区间求和,那该怎么实现? 我们不可能强行加上这些功能,就需要进行改造。最简单的方法就是改变数组。 有一个数组,我们只要改变其中两个点,就可以实现改变区间。我们只要加上一段区间,就…