首页 > TAG信息列表 > SDOI2008

1020 [SDOI2008]仪仗队 素数筛新模板 欧拉函数

链接:https://ac.nowcoder.com/acm/contest/26656/1020来源:牛客网 题目描述 作为体育委员,C君负责这次运动会仪仗队的训练。 仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队

P2466 [SDOI2008] Sue 的小球

P2466 [SDOI2008] Sue 的小球 Luogu P2466 题目描述 Sue 和 Sandy 最近迷上了一个电脑游戏,这个游戏的故事发在美丽神秘并且充满刺激的大海上,Sue 有一支轻便小巧的小船。然而,Sue 的目标并不是当一个海盗,而是要收集空中漂浮的彩蛋,Sue 有一个秘密武器,只要她将小船划到一个彩蛋的正下

P2464 [SDOI2008] 郁闷的小 J 题解

简单分块。 用一个 map 来维护每块里的出现次数就行了。 /* Work by: TLE_Automation */ #include<map> #include<cmath> #include<queue> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<tr1/unordered_map&g

动态规划:P5569 [SDOI2008] 石子合并 GarsiaWachs算法

P5569 [SDOI2008] 石子合并             这题就是P1775石子合并的数据加强版,我们那题采用的是区间DP,时间复杂度为O(n3) (4*1e4)的三次方=1.6*1e13,显然超时。这里就必须用一个算法,叫做GarsiaWachs算法,可以降低时间复杂度至n2甚至nlogn.     GarsiaWachs算法:他的做法就是

【积性函数专练】洛谷 P2158 [SDOI2008] 仪仗队

洛谷 P2158 [SDOI2008] 仪仗队 思路:套莫反 点击查看代码 int mo[N]; int cnt,primes[N];bool st[N]; ll sum[N]; void init(){ mo[1] = 1; for(int i=2;i<N;i++){ if(!st[i]) primes[cnt++] = i,mo[i] = -1; for(int j=0;primes[j]*i<N;j++){

题解 P2158 【[SDOI2008] 仪仗队】

P2158 [SDOI2008] 仪仗队 题目大意: solution: 先得出结论:当 \(\gcd(x,y)=1\) 时两个点不可见,换句话说,就是两个点互质(0,1特殊考虑)。 简单证明: 反证法: 设 \(x,y\) 所在直线斜率为 \(k=\frac{y}{x}\) \(\gcd(x,y)=d\) ,假设 \(x,y\) 不互质,设 \(x'=x/d,y'=y/d\) ,易证 \(\frac{y'}{x'}\)

[SDOI2008] 洞穴勘测

前言 在我做这道题之前,我不会线段树分治和带撤销并查集,但是卷爷一下子就给我讲懂了。 也许做 岛屿探险 的时候我自己发明了线段树分治? 反正我现在学懂了。 题目 洛谷 讲解 LCT 板子题。 好吧,由于蒟蒻笔者不会 LCT,就只能换个角度思考问题。 检查连通性我们可以想到优秀的数据结构:并

[SDOI2008]Sue的小球

题目链接:Sue的小球 找性质能力还是太弱。别傻啊 可以先考虑 dp 这个路径,但是看起来直接 dp 路径很不可做,尝试对这个路径的 dp 找性质 性质:不会出现 \(a<b<c\) 的位置,然后你 \(c \to a \to b\) 这么走,因为可以换成 \(c \to b \to a\). 同样的,你也不可能跳过一个从 \(a\) 跳到 \(a+

【SDOI2008】Sandy的卡片(二分答案+后缀数组)

【SDOI2008】Sandy的卡片 SA 经典题型:后缀数组+二分答案。 本题不难,我们需要先要处理题目重新定义的这个“相等”。这个处理方式和一道 HDU 的题很像,好像叫 Musical Theme。我们只需要记录数组相邻两个数字的变化量即可。因为在数字加上同一个数后,差是不变的。 我们把每个处理后的

[SDOI2008]递归数列 题解

矩乘板子题 \(k \le 15\) 且 \(a_{i}= {\textstyle \sum_{j=i}^{1}}c_{j}*a_{i-j} \ \ \ \ (i>k)\) (这一看就很矩乘) 考虑矩阵加速。 题目让求一段区间的和,可以转化为两前缀和相减的形式,同时,让矩阵边长加上 \(1\) , 多加的 \(1\) 用来储存前缀和 状态矩阵 \(f_{i}\) 存储: \[\be

题解 P5566 【[SDOI2008]红黑树】

最近在刷平衡树,看到标题就进来了,没想到是个dp???看了看,发现可以贪心,于是就有了这篇题解。 分析: 因为红黑树本身的性质,所以我们可以通过画图来枚举所有情况: 先把每一个节点看成黑色的,通过红黑树性质来把一些结点变成红色的。 \(case1:\) 如图: 最亏的一种情况,两个黑色节点没变出来一

P2155 [SDOI2008]沙拉公主的困惑

题目描述 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为 \(1\) 到 \(N\) 的阶乘, 但是,政府只发行编号与 \(M!\) 互质的钞票。房地产第一大户沙拉公主决定预测一下大富翁国现在所有真钞票的数量。 现在,请你帮助沙拉公主解决这个问题,由于数量可能非常

题解 P2158 【[SDOI2008]仪仗队】

原题链接 作为体育委员,C君负责这次运动会仪仗队的训练。仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图)。 现在,C君希望你告诉他队伍整齐时能看到的学生人数。 我们发现,所有 gc

【代码超详解】CometOJ C0896 [SDOI2008]仪仗队(欧拉函数 + 思维,4 ms)

一、题目描述 1000 ms / 256 MB 作为体育委员,C 君负责这次运动会仪仗队的训练。仪仗队是由学生组成的 N×N 的方阵,为了保证队伍在行进中整齐划一,C 君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图)。 现在,C 君希望你告诉他队伍整齐时能看到的学生

题解 洛谷P2158 【[SDOI2008]仪仗队】

本文搬自本人洛谷博客 题目 本文进行了一定的更新 优化了 Markdown 中 Latex 语句的运用,加强了可读性 补充了“我们仍不曾知晓得 消失的 性质5 ”,加强了推导的严谨性 介于使用了新的推导方法,调整了推导顺序 补充了关于线性筛的欧拉函数性质8 又又又又又 修改了部分错误(工程量太大

[luogu] P2463 [SDOI2008]Sandy的卡片

把串连起来就好了,但是中间要加分隔符(极大值且递增)。 #include <iostream> #include <cstdio> #include <cstring> using namespace std;const int N=1e6+7,INF=0x7fffffff; inline int read() { int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9

2037: [Sdoi2008]Sue的小球(区间DP)

2037: [Sdoi2008]Sue的小球 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 945  Solved: 538[Submit][Status][Discuss] Description Sue和Sandy最近迷上了一个电脑游戏,这个游戏的故事发在美丽神秘并且充满刺激的大海上,Sue有一支轻便小巧的小船。然而,Sue的目标并不是当一

P1984 [SDOI2008]烧水问题

1 #include <iostream> 2 #include<iomanip> 3 using namespace std; 4 double t[50010]; 5 6 int main() 7 { 8 int n; 9 double sum = 0;10 double pro;11 cin >> n;12 pro = (double)420000 / n;13 for (int i = 1; i <= n

LG2463/BZOJ4698 「SDOI2008」Sandy的卡片 后缀数组

问题描述 LG2463 BZOJ4698 题解 \mathrm{Code} #include<bits/stdc++.h> using namespace std; template <typename Tp> void read(Tp &x){ x=0;char ch=1;int fh; while(ch!='-'&&(ch<'0'||ch>'9')) ch=g

洛谷 P2147 [SDOI2008]洞穴勘测

P2147 [SDOI2008]洞穴勘测 思路: 按时间分治,然后每条边有一个存活时间段,按存活时间段将边加入划分树,然后在划分树上分治,用可撤销并查集维护连通性。 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include<bits/stdc++.h> using namespace std;

【SDOI2008】山贼集团

这是一道树形dp和状压dp结合的题目,思考量和代码细节都不少。 我们首先定义f[i][j]表示在以i为根的子树当中,建立分部的节点状压之后为j的最大收益 那么转移是显然的,定义k为i的儿子,那么f[i][j] = max(f[k][l] + f[i][j ^ l] + val). 其中val表示其他的收益 我们可以预处理val数组,剩下

[SDOI2008]仪仗队

传送门: 分析完题目,不就是要找y=kx有多少条0.0,那就是要找 (n-1)内gcd(i,j)==1的个数吗,最后答案+2就行了,直接走莫比乌斯反演。。。(题解区并没有人用) 最后特判n==1输出0就行了 #include <cstdio>#include <cstring>#include <string>#include <cstdlib>#include <algorithm>#include

[SDOI2008]仪仗队

题目 [SDOI2008]仪仗队 解析 这个题,我也不知道他们的soltion是怎么写的这么长的。 我们发现我们一次看一条直线上的第一个点,也就是说,若两个点斜率\(k=\frac{y}{x}\)相同的话,我们只能看到x,y最小的那个点。 然后根据小学数学,\(\frac{x}{y}=\frac{kx}{ky}(k=1,2,3...)\),也就是说,我们能

P2147 [SDOI2008]洞穴勘测

传送门 维护森林中点之间的连通性,有加边和删边操作,保证不出现环 显然直接 $LCT$ 维护,模板套进去就好了 #include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>using namespace std;typedef long long ll;inline int read(){ int x=0,f=1; ch

[SDOI2008]Sandy的卡片

Description Sandy和Sue的热衷于收集干脆面中的卡片。然而,Sue收集卡片是因为卡片上漂亮的人物形象,而Sandy则是为了积攒卡片兑换超炫的人物模型。每一张卡片都由一些数字进行标记,第i张卡片的序列长度为Mi,要想兑换人物模型,首先必须要集够N张卡片,对于这N张卡片,如果他们都有一个相同的