Warning: session_start(): open(/tmp/sess_aa5d877ff78c8338199650af9ffa225c, O_RDWR) failed: No space left on device (28) in /data/wiki/inc/init.php on line 239

Warning: session_start(): Failed to read session data: files (path: ) in /data/wiki/inc/init.php on line 239

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/auth.php on line 430

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/actions.php on line 38

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/lib/tpl/dokuwiki/main.php on line 12
2020-2021:teams:die_java:weeksummary10 [CVBB ACM Team]

用户工具

站点工具


2020-2021:teams:die_java:weeksummary10

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
2020-2021:teams:die_java:weeksummary10 [2020/08/14 15:23]
fyhssgss [傅云濠]
2020-2021:teams:die_java:weeksummary10 [2020/08/14 16:43] (当前版本)
wxg [王兴罡]
行 13: 行 13:
 ====== 每周推荐 ====== ====== 每周推荐 ======
 fyh: fyh:
-\\ 题目大意: +\\ 题目大意:给一个无向图,你要不在图中找到一个长度大于等于$\lceil \frac{n}{2} \rceil$ 的简单路径,要不就找若干个二元组(其中这些二元组的元素不能重复,至少要多于等于$\lceil \frac{n}{2} \rceil$ ),使得任意两个二元组组成的子图,至多有两条边。 
-\\ tag: +\\ tag:dfs树,构造 
-\\ 做法: +\\ 做法:随便找一点开始求他的dfs树,如果dfs树中有深度大于等于$\lceil \frac{n}{2} \rceil$ 的点,就直接输出即可,否则就找所有深度相同的点,两两配对,一定能保证配出$\lceil \frac{n}{4} \rceil$ 对。怎么证明呢? 
-\\ comment:+先证这任意两个二元组组成的子图吧,根据dfs树的性质,**所有非树边一定是祖先连往子孙,不可能存在子树之间的连边** ,深度相同的点显然是属于两个子树,所以保证两个二元组$(a,​b),​(c,​d)$ 其中$deep[a]=deep[b],​deep[c]=deep[d]$ 令$deep[a]<​deep[c]$,a和b 不可能连边,c和d不可能连边,那两条边只可能是a和c,b和d为父子关系的时候才可以算上。  
 +再证一定大于$\lceil \frac{n}{4} \rceil$ 对,因为不存在深度大于$\lceil \frac{n}{2} \rceil$ 了,所以最大深度不过$\lceil \frac{n}{2} \rceil$ ,每一个深度只有当有0个或者1个节点的时候才会放弃这个深度,根据抽屉原理一定能选出$\lceil \frac{n}{4} \rceil$ 对满足。 
 +\\ comment:虽然这题出的有点强行,但是利用dfs树的一些性质还是十分巧妙
  
 wxg:  wxg: 
-\\ 题目大意 +\\ 题目大意 ​给了一个度数小于10的图,问你有多少个排列${c_n}$,满足度数为 $i$ 的点就往第 $c_i$ 个边走,每个点最终都能走回自己 
-\\ tag:  +\\ tag: 图论,思维 
-\\ 做法:  +\\ 做法: ​发现给出排列的图最后都是若干个环,所以每个点入度出度都是1,我们可以用bitset判断 $c_i$ 和 $c_j$ 是否有矛盾,最后枚举排列算答案即可 
-\\ comment: ​+\\ comment: ​判断图是否成环的方法非常巧妙
  
 hxm: hxm:
-\\ 题目大意: +\\ 题目大意:一个可重复数字集合S的神秘数定义为最小的不能被S的子集的和表示的正整数。 
-\\ tag:+现给定n个正整数a[1]..a[n],m个询问,每次询问给定一个区间l,​r,求由a[l],​a[l+1],​…,​a[r]所构成的可重复数字集合的神秘数。 
 +\\ tag:主席树
 \\ 做法: \\ 做法:
-\\ comment:+假如我们已经求出一个集合所能凑出连续数的最大区间$[1,​max]$,那么此时答案为$max + 1$ 
 +那么我们此时加入一个数$x$,假若$x > max + 1$,显然对答案没有影响 
 +但是假若$x \le max + 1$,显然最大区间变为$[1,​max + x]$,答案变为$max + x + 1$ 
 + 
 +那么我们就能得出这题的解法了 
 +将区间内的数排序,一开始$ans = 0$,然后逐一将数加入集合之中, 一但出现$x > max + 1$的情况,由于是有序的,后面的数也无法更新答案,此时答案就是最优的 
 +但是暴力排序枚举显然不行,我们可以用主席树优化 
 +每求出一个新的区间$[1,​max]$后,$[1,​max + 1]$内的数都可以参与贡献,那么此时新的区间为$[1,​\sum a_i]$,其中$a_i \le max + 1$ 
 +当$max$不变时算法结束 
 +显然$max$是成倍增长的,所以复杂度为$O(nlog^2(\sum a_i))$ 
 +\\ comment:贪心思路+数据结构优化
  
 ---- ----
行 35: 行 48:
  
 ====== 傅云濠 ====== ====== 傅云濠 ======
 +比赛:[[https://​www.cnblogs.com/​FYH-SSGSS/​p/​13480766.html|Codeforces Round #663 (Div. 2)]] 
 +\\ 补第九场J 第十场J 
 +整理了树上哈希的板子
 ---- ----
  
 ====== 王兴罡 ====== ====== 王兴罡 ======
-比赛:[[https://​atcoder.jp/​contests/​abc174|atcoderAtCoder Beginner Contest 174]] +补了cf664的部分题
 ---- ----
  
 ====== 黄旭民 ====== ====== 黄旭民 ======
-比赛:[[https://​atcoder.jp/​contests/​abc174|atcoderAtCoder Beginner Contest 174]] +比赛: 
- \\ 整理:整理了点分治板子 +\\ 整理单纯形板子
  
2020-2021/teams/die_java/weeksummary10.1597389816.txt.gz · 最后更改: 2020/08/14 15:23 由 fyhssgss