Warning: session_start(): open(/tmp/sess_936b74dca7e2c29669968eaea563b217, 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:manespace:codeforces_round_641_div._2 [CVBB ACM Team]

用户工具

站点工具


2020-2021:teams:manespace:codeforces_round_641_div._2

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
2020-2021:teams:manespace:codeforces_round_641_div._2 [2020/05/16 20:08]
intouchables
2020-2021:teams:manespace:codeforces_round_641_div._2 [2020/05/19 16:22] (当前版本)
intouchables [B]
行 9: 行 9:
 题意:t次操作,每次给定n,k,求k次$n=n+f(n)$之后的n值,其中$f(n)$求取n的最小质因子。 题意:t次操作,每次给定n,k,求k次$n=n+f(n)$之后的n值,其中$f(n)$求取n的最小质因子。
  
-思路:签到(之后就罚坐)题,分三类情况:+<​hidden ​思路:
 + 
 +签到(之后就罚坐)题,分三类情况:
  
   *偶数最小质因子就是2,加完还是偶数,直接 $n + 2k$   *偶数最小质因子就是2,加完还是偶数,直接 $n + 2k$
行 16: 行 18:
  
 $1≤n≤2*10^6$,$1≤t≤10^2$,暴力不放心可以线性筛 $1≤n≤2*10^6$,$1≤t≤10^2$,暴力不放心可以线性筛
 +
 +</​hidden>​
  
 AC代码=>​[[https://​codeforc.es/​contest/​1350/​submission/​79832106]] AC代码=>​[[https://​codeforc.es/​contest/​1350/​submission/​79832106]]
行 23: 行 27:
 题意:t 次询问($1≤t≤10^2$),每次给定长为 n ($1≤n≤10^5$)的正整数序列{s<​sub>​1</​sub>,​s<​sub>​2</​sub>,​...,​s<​sub>​n</​sub>​},求子序列满足对任意$i≤j$有s<​sub>​i</​sub>​ < s<​sub>​j</​sub>​且j % i == 0的最长子序列长度 题意:t 次询问($1≤t≤10^2$),每次给定长为 n ($1≤n≤10^5$)的正整数序列{s<​sub>​1</​sub>,​s<​sub>​2</​sub>,​...,​s<​sub>​n</​sub>​},求子序列满足对任意$i≤j$有s<​sub>​i</​sub>​ < s<​sub>​j</​sub>​且j % i == 0的最长子序列长度
  
-思路:不难想到LIS,dp可以过,注意一下细节防止TLE+<​hidden ​思路:
 + 
 +不难想到LIS(最长上升子序列),dp可以过,注意一下细节防止TLE 
 + 
 +</​hidden>​
  
 AC代码=>​[[https://​codeforc.es/​contest/​1350/​submission/​79954462]] AC代码=>​[[https://​codeforc.es/​contest/​1350/​submission/​79954462]]
行 31: 行 39:
 题意:给定长为 n ($2≤n≤10^5$)的正整数序列{s<​sub>​1</​sub>,​s<​sub>​2</​sub>,​…,​s<​sub>​n</​sub>​},求由任意两元素 LCM(最小公倍数)组成新序列{a<​sub>​1</​sub>,​a<​sub>​2</​sub>,​…,​a<​sub>​n</​sub>​}(1$≤$a<​sub>​i</​sub>​$≤2*10^5$)的 GCD(最大公约数),即LCM(GCD(s<​sub>​i</​sub>,​s<​sub>​j</​sub>​))($i ≤j$) 题意:给定长为 n ($2≤n≤10^5$)的正整数序列{s<​sub>​1</​sub>,​s<​sub>​2</​sub>,​…,​s<​sub>​n</​sub>​},求由任意两元素 LCM(最小公倍数)组成新序列{a<​sub>​1</​sub>,​a<​sub>​2</​sub>,​…,​a<​sub>​n</​sub>​}(1$≤$a<​sub>​i</​sub>​$≤2*10^5$)的 GCD(最大公约数),即LCM(GCD(s<​sub>​i</​sub>,​s<​sub>​j</​sub>​))($i ≤j$)
  
-思路:将答案 ans 质因数分解,有 $ans =$ p<​sub>​1</​sub><​sup>​k1</​sup>​p<​sub>​2</​sub><​sup>​k2</​sup>​...p<​sub>​m</​sub><​sup>​km</​sup>​+<​hidden ​思路:
 + 
 +将答案 ans 质因数分解,有 $ans =$ p<​sub>​1</​sub><​sup>​k1</​sup>​p<​sub>​2</​sub><​sup>​k2</​sup>​...p<​sub>​m</​sub><​sup>​km</​sup>​
  
 对于每个 p<​sub>​i</​sub>​,一定在序列 s 中出现至少 $n - 1$ 次,每次出现由小到大可能为 p<​sub>​i</​sub><​sup>​c1</​sup>​, p<​sub>​i</​sub><​sup>​c2</​sup>​, ...p<​sub>​i</​sub><​sup>​cki</​sup>​ 对于每个 p<​sub>​i</​sub>​,一定在序列 s 中出现至少 $n - 1$ 次,每次出现由小到大可能为 p<​sub>​i</​sub><​sup>​c1</​sup>​, p<​sub>​i</​sub><​sup>​c2</​sup>​, ...p<​sub>​i</​sub><​sup>​cki</​sup>​
行 40: 行 50:
  
 注意用vector,不要处处longlong,否则会MLE 注意用vector,不要处处longlong,否则会MLE
 +
 +</​hidden>​
  
 AC代码=>​[[https://​codeforc.es/​contest/​1350/​submission/​79957224]] AC代码=>​[[https://​codeforc.es/​contest/​1350/​submission/​79957224]]
行 46: 行 58:
 题意:t 次询问,每次给定长为 n 的正整数序列{a<​sub>​1</​sub>,​a<​sub>​2</​sub>,​...a<​sub>​n</​sub>​}和正整数 k。可以无数次对任意区间$[l,​ r]$进行如下操作:求其中位数(角标向下取整)并将区间内所有值变为中位数。问能否将此序列同化为k。 题意:t 次询问,每次给定长为 n 的正整数序列{a<​sub>​1</​sub>,​a<​sub>​2</​sub>,​...a<​sub>​n</​sub>​}和正整数 k。可以无数次对任意区间$[l,​ r]$进行如下操作:求其中位数(角标向下取整)并将区间内所有值变为中位数。问能否将此序列同化为k。
  
-思路:数一下 k 在序列中出现了多少次,首先出现 0 次肯定是不行的。只有 1 个元素且等于 k 可行;只有 2 个元素时保证不等于 k 的元素大于 k 则可行;多个元素时从 2 到 n-1 遍历一次,任何相邻的三个数中只要有两个数大于等于 k 则可行。+<​hidden ​思路:
 + 
 +数一下 k 在序列中出现了多少次,首先出现 0 次肯定是不行的。只有 1 个元素且等于 k 可行;只有 2 个元素时保证不等于 k 的元素大于 k 则可行;多个元素时从 2 到 n-1 遍历一次,任何相邻的三个数中只要有两个数大于等于 k 则可行。 
 + 
 +</​hidden>​
  
 AC代码=>​[[https://​codeforc.es/​contest/​1350/​submission/​79960457]] AC代码=>​[[https://​codeforc.es/​contest/​1350/​submission/​79960457]]
 =====E===== =====E=====
  
-不急+咕咕咕
 =====F===== =====F=====
  
 没看,不补 没看,不补
2020-2021/teams/manespace/codeforces_round_641_div._2.1589630882.txt.gz · 最后更改: 2020/05/16 20:08 由 intouchables