用户工具

站点工具


2020-2021:teams:manespace:cf_641_div_2

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
2020-2021:teams:manespace:cf_641_div_2 [2020/05/15 17:35]
quantumbolt
2020-2021:teams:manespace:cf_641_div_2 [2020/05/18 22:08] (当前版本)
quantumbolt
行 1: 行 1:
-啊,这周又是一堆的作业,只打了一场比赛,没想到遇到了国人的数论专场,m(m(m(m(打着打着就不会了,😔+啊,这周又是一堆的作业,只打了一场比赛,没想到遇到了国人的数论专场,m( m( m( m(打着打着就不会了,😔
  
-<​HTML><​ul></​HTML>​ +===== =====
-<​HTML><​li></​HTML><​HTML><​p></​HTML>​A<​HTML></​p></​HTML>​ +
-<​HTML><​ul></​HTML>​ +
-<​HTML><​li></​HTML>​题意:给一个数$n$ ,进行$k$次运算 运算规则,得到$n$除了1之外能够整除$n$的最小数字,然后将结果$f(n)$加到$n$上,在经过k次运算,得到最终结果<​HTML></​li></​HTML>​ +
-<​HTML><​li></​HTML>​题解:将$n$分为偶数和奇数两部分,如果$n$为偶数,​$f(n)$2,$n+f(n)$也是偶数,之后的迭代就直接加$2$就行了,如果$n$为奇数,有两种情况,第一,他为质数,第二,他的$f(n)$为质数,但是无论如何,他在一次迭代后得到的数都是偶数,然后再用一的情况就行了。<​HTML></​li></​HTML>​ +
-<​HTML><​li></​HTML>​代码:<​HTML></​li></​HTML><​HTML></​ul></​HTML>​+
  
-<code cpp>+  * 题意:给一个数$n$ ,进行$k$次运算 运算规则,得到$n$除了1之外能够整除$n$的最小数字,然后将结果$f(n)$加到$n$上,在经过$k$次运算,得到最终结果 
 +  * 题解:将$n$分为偶数和奇数两部分,如果$n$为偶数,​$f(n)$2,$n+f(n)$也是偶数,之后的迭代就直接加$2$就行了,如果$n$为奇数,有两种情况,第一,他为质数,第二,他的$f(n)$为质数,但是无论如何,他在一次迭代后得到的数都是偶数,然后再用一的情况就行了。 
 +  * 代码:<code cpp>
 #include <​bits/​stdc++.h>​ #include <​bits/​stdc++.h>​
 +
 using namespace std; using namespace std;
 +
 int sdiv(int n){ int sdiv(int n){
-    ​for(int i = 2; i <= sqrt(n); i++){ +  ​for(int i = 2; i <= sqrt(n); i++){ 
-        if(n % i == 0) return i; +    if(n % i == 0) return i; 
-    +  
-    return n;+  return n;
 } }
 +
 int main(){ ​ int main(){ ​
 +  int n;
 +  scanf("​%d",&​n);​
 +  while(n--){
 +    int k, t;
 +    scanf("​%d%d",&​k,&​t);​
 +    if(sdiv(k) % 2 == 1){
 +      k += sdiv(k);
 +      k += (t-1)*2;
 +    }
 +    else 
 +    {
 +      k += t *2;
 +    }
 +    printf("​%d\n",​k);​
 +  }
 +  return 0;
 +}
 +</​code>​
 +
 +===== B =====
 +
 +  * 题意:给你一串数$s$<​html><​sub></​html>​$1$<​html></​sub></​html>,​$s$<​html><​sub></​html>​$2$<​html></​sub></​html>,​$s$<​html><​sub></​html>​$3$<​html></​sub></​html>,​$\ldots$,​$s$<​html><​sub></​html>​$n$<​html></​sub></​html>​. 如果满足下标$i$<​html><​sub></​html>​$j$<​html></​sub></​html>,​$i$<​html><​sub></​html>​$j+1$<​html></​sub></​html>​满足$i$<​html><​sub></​html>​$j$<​html></​sub></​html><​$i$<​html><​sub></​html>​$j+1$<​html></​sub></​html>​并且有$s$<​html><​sub></​html>​$i$<​html><​sub></​html>​$j$<​html></​sub></​html><​html></​sub></​html>​ <​$s$<​html><​sub></​html>​$i$<​html><​sub></​html>​$j+1$<​html></​sub></​html><​html></​sub></​html>​ .则称这样的安排是美的,题目要你找出一串序列中最长的,具有美感的数列长度。
 +  * 题解:不多bb,没有太多好说的。
 +  * 代码:<​code cpp>
 +# include <​bits/​stdc++.h>​
 +
 +using namespace std;
 +
 +void solve() {
     int n;     int n;
-    ​scanf("​%d"​,&n); +    ​cin >> n; 
-    ​while(n--){ +    vector <int> a(n + 1)dp(+ 1); 
-        int k, t+    ​for (int i = 1; i <= n; i++) { 
-        scanf("​%d%d",&​k,&​t); +        ​cin >> a[i]; 
-        ​if(sdiv(k) % == 1){ +    } 
-            k +sdiv(k); +    ​int answer = 0
-            k += (t-1)*2; +    ​for ​(int i = 1; i <= n; i++
-        } +        int mx = 0
-        else  +        ​for (int j = 1; j * j <= i; j++
-        { +            if (i == 0) { 
-            ​k += t *2;+                if (a[j] < a[i]) mx max(mx, dp[j]); 
 +                if (a[i / j] < a[i]) mx max(mx, dp[i / j]); 
 +            ​}
         }         }
-        ​printf("​%d\n"​,k);+        ​dp[i] = mx + 1; 
 +        answer = max(answerdp[i]);
     }     }
-    ​return 0;+    ​cout << answer << endl;
 } }
-</​code><​HTML></​li></​HTML>​ 
-<​HTML><​li></​HTML><​HTML><​p></​HTML>​B<​HTML></​p></​HTML>​ 
-<​HTML><​ul></​HTML>​ 
-<​HTML><​li></​HTML><​HTML><​p></​HTML>​题意:给你一串数$s$<​html><​sub></​html>​$1$<​html></​sub></​html>,​$s$<​html><​sub></​html>​$2$<​html></​sub></​html>,​$s$<​html><​sub></​html>​$3$<​html></​sub></​html>,​$\ldots$,​$s$<​html><​sub></​html>​$n$<​html></​sub></​html>​. 如果满足下标$i$<​html><​sub></​html>​$j$<​html></​sub></​html>,​$i$<​html><​sub></​html>​$j+1$<​html></​sub></​html>​满足$i$<​html><​sub></​html>​$j$<​html></​sub></​html><​$i$<​html><​sub></​html>​$j+1$<​html></​sub></​html>​并且有$s$<​html><​sub></​html>​$i$<​html><​sub></​html>​$j$<​html></​sub></​html><​html></​sub></​html>​ <​$s$<​html><​sub></​html>​$i$<​html><​sub></​html>​$j+1$<​html></​sub></​html><​html></​sub></​html>​ .则称这样的安排是美的,题目要你找出一串序列中最长的,具有美感的数列长度。<​HTML></​p></​HTML><​HTML></​li></​HTML>​ 
-<​HTML><​li></​HTML><​HTML><​p></​HTML>​题解:不多bb<​HTML></​p></​HTML><​HTML></​li></​HTML>​ 
-<​HTML><​li></​HTML><​HTML><​p></​HTML>​代码:<​HTML></​p></​HTML><​HTML></​li></​HTML>​ 
-<​HTML><​li></​HTML><​code cpp> 
-  # include <​bits/​stdc++.h>​ 
  
-  using namespace std;+int main() { 
 +    int tt = 1; 
 +    cin >> tt; 
 +    while (tt--) 
 +        solve(); 
 +
 +</​code>​
  
-  void solve() { +===== =====
-      int n; +
-      cin >> n; +
-      vector <int> a(n + 1), dp(n + 1); +
-      for (int i 1; i <n; i++) { +
-          cin >> a[i]; +
-      } +
-      int answer ​0; +
-      for (int i 1; i <n; i++) { +
-          int mx 0; +
-          for (int j 1; j * j <i; j++) { +
-              if (i % j == 0) { +
-                  if (a[j] < a[i]) mx = max(mx, dp[j]); +
-                  if (a[i / j] < a[i]) mx = max(mx, dp[i / j]); +
-              } +
-          } +
-          dp[i] = mx + 1; +
-          answer = max(answer, dp[i]); +
-      } +
-      cout << answer << endl; +
-  } +
- +
-  int main() { +
-      int tt = 1; +
-      cin >> tt; +
-      while (tt--) +
-          solve(); +
-  } +
-</​code><​HTML></​li></​HTML><​HTML></​ul></​HTML>​ +
-<​HTML></​li></​HTML>​ +
-<​HTML><​li></​HTML><​HTML><​p></​HTML>​C<​HTML></​p></​HTML>​ +
-<​HTML><​ul></​HTML>​ +
-<​HTML><​li></​HTML>​题意:给你一串数$s$<​html><​sub></​html>​$1$<​html></​sub></​html>,​$s$<​html><​sub></​html>​$2$<​html></​sub></​html>,​$s$<​html><​sub></​html>​$3$<​html></​sub></​html>,​$\ldots$,​$s$<​html><​sub></​html>​$n$<​html></​sub></​html>​. 先算这串数的lcm,再算这串数的 gcd。<​HTML></​li></​HTML>​ +
-<​HTML><​li></​HTML>​题解:开始没仔细思考就直接暴力,直接按题意来算,提交后就后悔了,暴力肯定会超时的啊,后来想到了STL大法,果然还是很强。<​HTML></​li></​HTML>​ +
-<​HTML><​li></​HTML>​代码:<​HTML></​li></​HTML><​HTML></​ul></​HTML>​+
  
-<code cpp>+  * 题意:给你一串数$s$<​html><​sub></​html>​$1$<​html></​sub></​html>,​$s$<​html><​sub></​html>​$2$<​html></​sub></​html>,​$s$<​html><​sub></​html>​$3$<​html></​sub></​html>,​$\ldots$,​$s$<​html><​sub></​html>​$n$<​html></​sub></​html>​. 先算这串数的lcm,再算这串数的 gcd。 
 +  * 题解:开始没仔细思考就直接暴力,直接按题意来算,提交后就后悔了,暴力肯定会超时的啊,后来想到了STL大法,很神奇。 
 +  * 代码:<code cpp>
 #include <​bits/​stdc++.h>​ #include <​bits/​stdc++.h>​
  
行 110: 行 108:
   return 0;   return 0;
 } }
-</code><​HTML></​li></​HTML+</​code>​ 
-<​HTML><​li></​HTML><​HTML><​p></​HTML>​D<​HTML></​p></​HTML>​ + 
-<​HTML><​ul></​HTML>​ +​ 
-<​HTML><​li></​HTML>​题目:https://​codeforces.com/​contest/​1350/​problem/​D + 
-<​HTML><​li></​HTML>​题解:哦时间不够了,没做完,提交了也没过。。<​HTML></​li></​HTML>​ +===== ===== 
-<​HTML><​li></​HTML>​咕咕中,会补的,别催了。<​HTML></​li></​HTML><​HTML></​ul></​HTML>​ + 
-<​HTML></​li></​HTML>​ +  ​* ​题目:https://​codeforces.com/​contest/​1350/​problem/​D 
-<​HTML><​li></​HTML><​HTML><​p></​HTML>​E<​HTML></​p></​HTML>​ +  ​* ​题解:哦时间不够了,没做完,提交了也没过。。 
-<​HTML><​ul></​HTML>​ +  ​* ​咕咕中,会补的,别催了。 
-<​HTML><​li></​HTML>​题目:https://​codeforces.com/​contest/​1350/​problem/​E + 
-<​HTML><​li></​HTML>​咕咕中,会补的,别催了。<​HTML></​li></​HTML><​HTML></​ul></​HTML>​ +===== ===== 
-<​HTML></​li></​HTML>​ + 
-<​HTML><​li></​HTML><​HTML><​p></​HTML>​F<​HTML></​p></​HTML>​ +  ​* ​题目:https://​codeforces.com/​contest/​1350/​problem/​E 
-<​HTML><​ul></​HTML>​ +  ​* ​咕咕中,会补的,别催了。 
-<​HTML><​li></​HTML>​题目:https://​codeforces.com/​contest/​1350/​problem/​F + 
-<​HTML><​li></​HTML>​咕咕中,会补的,别催了。<​HTML></​li></​HTML><​HTML></​ul></​HTML>​ +===== ===== 
-<​HTML></​li></​HTML><​HTML></​ul></​HTML>​+ 
 +  ​* ​题目:https://​codeforces.com/​contest/​1350/​problem/​F 
 +  ​* ​咕咕中,会补的,别催了。
  
-淦,从markdown转码过来就是这样的了,全<​html>​的了,懒得改了+
  
2020-2021/teams/manespace/cf_641_div_2.1589535320.txt.gz · 最后更改: 2020/05/15 17:35 由 quantumbolt