• Codeforces Round #427 (Div. 2)——ABCD


    http://codeforces.com/contest/835

    A.拼英语水平和手速的签到题

     1 #include <bits/stdc++.h>
     2 
     3 using namespace std;
     4 
     5 int s, v1, v2, t1, t2;
     6 
     7 int main() {
     8     cin >> s >> v1 >> v2 >> t1 >> t2;
     9     int a1 = t1 + v1 * s + t1;
    10     int a2 = t2 + v2 * s + t2;
    11     if(a1 < a2) puts("First");
    12     else if(a1 > a2) puts("Second");
    13     else puts("Friendship");
    14     return 0;
    15 }
    View Code

    B.同签到

     1 #include <bits/stdc++.h>
     2 
     3 using namespace std;
     4 
     5 int k, n, a[10];
     6 
     7 string s;
     8 
     9 long long sum;
    10 
    11 int main() {
    12     cin >> k >> s;
    13     for(int i = 0;i < s.size();i ++)
    14         a[s[i] - '0'] ++, sum += s[i] - '0';
    15     if(sum >= k) {
    16         puts("0");
    17         return 0;
    18     }
    19     k -= sum;
    20     for(int i = 0;i < 10;i ++)
    21         for(int j = 1;j <= a[i];j ++) {
    22             k -= 9 - i, n ++;
    23             if(k <= 0) {
    24                 printf("%d
    ", n);
    25                 return 0;
    26             }
    27         }
    28     return 0;
    29 }
    View Code

    C.看到xyc的数据范围就能明白是道水题...然后就WA了

    1W个位置10W个点,可能一个位置好几颗星星...令人无语

     1 #include <bits/stdc++.h>
     2 
     3 using namespace std;
     4 
     5 vector<int> c[11][110][110];
     6 
     7 int n, q, cc, b[11][110][110];
     8 
     9 int main() {
    10     scanf("%d %d %d", &n, &q, &cc), cc ++;
    11     for(int u, v, w, i = 1;i <= n;i ++) {
    12         scanf("%d %d %d", &u, &v, &w);
    13         c[0][u][v].push_back(w);
    14     }
    15     for(int i = 1;i < cc;i ++)
    16         for(int j = 1;j <= 100;j ++)
    17             for(int k = 1;k <= 100;k ++)
    18                 if(c[i - 1][j][k].size() != 0) {
    19                     for(int p = 0;p < c[i - 1][j][k].size();p ++)
    20                         c[i][j][k].push_back((c[i - 1][j][k][p] + 1) % cc);
    21                 }
    22     for(int i = 0;i < cc;i ++)
    23         for(int j = 1;j <= 100;j ++)
    24             for(int k = 1;k <= 100;k ++) {
    25                 b[i][j][k] += b[i][j - 1][k] + b[i][j][k - 1] - b[i][j - 1][k - 1];
    26                 for(int p = 0;p < c[i][j][k].size();p ++)
    27                     b[i][j][k] += c[i][j][k][p];
    28             }
    29     for(int t, A, B, C, D, i = 1;i <= q;i ++) {
    30         scanf("%d %d %d %d %d", &t, &A, &B, &C, &D);
    31         t %= cc, printf("%d
    ", b[t][C][D] + b[t][A - 1][B - 1] - b[t][A - 1][D] - b[t][C][B - 1]);
    32     }
    33     return 0;
    34 }
    View Code

    如果没有亮度变化,坐标到1e9,会有新的星星在某个位置出现,询问不变

    允许离线的话可以CDQ分治解决,O(nlog^2n)

    强制在线的话可以树状数组套主席树,时间复杂度相同,常数略大,空间O(nlogn)

    当然这个模型感觉都快被写烂了...

    D.注意到1阶回文是普通回文

    而k阶回文决定了它一定也是回文,而且它也是1...k-1阶回文

    想清楚了它的性质,就是个区间DP了

     1 import java.util.Scanner;
     2 
     3 public class D {
     4     public static void main(String []args) {
     5         Scanner cin = new Scanner(System.in);
     6         int[][] dp = new int[5005][5005];
     7         int[] ans = new int[5005];
     8         String s = cin.nextLine();
     9         int n = s.length();
    10         for(int d = 1;d <= n;d ++)
    11             for(int i = 0;i + d - 1< n;i ++) {
    12                 int j = i + d - 1;
    13                 if(d < 3) dp[i][j] = (s.charAt(i) == s.charAt(j) ? d : 0);
    14                 else if(s.charAt(i) != s.charAt(j) || dp[i + 1][j - 1] == 0) dp[i][j] = 0;
    15                 else if(s.charAt(i) == s.charAt((i + j - 1) / 2)) dp[i][j] = dp[i][(i + j - 1) / 2] + 1;
    16                 else dp[i][j] = 1;
    17                 ans[dp[i][j]] ++;
    18             }
    19         for(int i = n - 1;i > 0;i --)
    20             ans[i] += ans[i + 1];
    21         for(int i = 1;i <= n;i ++)
    22             System.out.printf("%d ", ans[i]);
    23     }
    24 }
    View Code
  • 相关阅读:
    AcWing 826. 单链表
    AcWing 803. 区间合并
    codeforces Codeforces Round #597 (Div. 2) D. Shichikuji and Power Grid
    球球大作战.exe
    RGB MIXER三原色混色器的制作
    125. 验证回文串
    110. 平衡二叉树
    112. 路径总和
    111. 二叉树的最小深度
    100. 相同的树
  • 原文地址:https://www.cnblogs.com/ytytzzz/p/7270106.html
Copyright © 2020-2023  润新知