zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    使用FolderBrowserDialog组件选择文件夹
    使用OpenFileDialog组件打开多个文
    使用OpenFileDialog组件打开对话框
    获取弹出对话框的相关返回值
    PAT 甲级 1139 First Contact (30 分)
    PAT 甲级 1139 First Contact (30 分)
    PAT 甲级 1138 Postorder Traversal (25 分)
    PAT 甲级 1138 Postorder Traversal (25 分)
    PAT 甲级 1137 Final Grading (25 分)
    PAT 甲级 1137 Final Grading (25 分)
  • 原文地址:https://www.cnblogs.com/ytytzzz/p/7270106.html
Copyright © 2011-2022 走看看