zoukankan      html  css  js  c++  java
  • Codeforces Global Round 3

    同样还是补题 老年人晚上熬不起夜(其实是那天去找女朋友玩了回来晚了

    A. Another One Bites The Dust

    题意 给出a个"a" b个"b" c个"ab" 然后能组成如"ababa"形串的最大长度

    水题 如果a == b的话 就刚好按若干个ab的顺序排 即最长长度为(a + c) * 2

    a != b的话 也是按若干个ab排 但多出来的一个a可以排在最后一个b后面

    同理 多出来的一个b可以排在最先一个a前面 即最长长度(min(a, b) + c) * 2 + 1

    AC代码:

     1 #include<bits/stdc++.h>
     2 #define pi acos(-1)
     3 typedef long long ll;
     4 typedef unsigned long long ull;
     5 using namespace std;
     6 
     7 namespace io {
     8     const int SIZE = 1e7 + 10;
     9     char inbuff[SIZE];
    10     char *l, *r;
    11     inline void init() {
    12         l = inbuff;
    13         r = inbuff + fread(inbuff, 1, SIZE, stdin);
    14     }
    15     inline char gc() {
    16         if (l == r) init();
    17         return (l != r) ? *(l++) : EOF;
    18     }
    19     void read(int &x) {
    20         x = 0; char ch = gc();
    21         while(!isdigit(ch)) ch = gc();
    22         while(isdigit(ch)) x = x * 10 + ch - '0', ch = gc();
    23     }
    24 } using io::read;
    25 
    26 bool cmp(const int &a, const int &b){
    27     return a > b;
    28 }
    29 
    30 int main(){
    31     ll a, b, c;
    32     cin>>a>>b>>c;
    33     if (a == b) cout<<(a + c) * 2<<endl;
    34     else cout<<(min(a, b) + c) * 2 + 1<<endl;
    35     return 0;
    36 }

    B. Born This Way

    题意 某个人要买张从A到C的机票 但是上帝并不想让他这么顺利(瞎编的)

    他只能从A飞到B 再从B飞到C

    给出n趟从A到B的飞机起飞时刻与m趟从B到C的飞机起飞时刻还有A到B的飞机飞行时间ta和B到C的飞机飞行时间tb

    你现在要千方百计让这个人最晚时间到达目的地 你能取消小于等于k趟航班

    若取消后不能到达 输出-1 否则 输出最晚的时间

    先直接把a数组都加上ta 再跟b数组的每一项比较 注意特判n <= k或m <= k时的情况

    AC代码:

     1 #include<bits/stdc++.h>
     2 #define pi acos(-1)
     3 typedef long long ll;
     4 typedef unsigned long long ull;
     5 using namespace std;
     6 
     7 namespace io {
     8     const int SIZE = 1e7 + 10;
     9     char inbuff[SIZE];
    10     char *l, *r;
    11     inline void init() {
    12         l = inbuff;
    13         r = inbuff + fread(inbuff, 1, SIZE, stdin);
    14     }
    15     inline char gc() {
    16         if (l == r) init();
    17         return (l != r) ? *(l++) : EOF;
    18     }
    19     void read(int &x) {
    20         x = 0; char ch = gc();
    21         while(!isdigit(ch)) ch = gc();
    22         while(isdigit(ch)) x = x * 10 + ch - '0', ch = gc();
    23     }
    24 } using io::read;
    25 
    26 bool cmp(const int &a, const int &b){
    27     return a > b;
    28 }
    29 
    30 const int N = 2e5 + 5;
    31 ll n, m, ta, tb, k;
    32 ll a[N], b[N];
    33 ll ans;
    34 
    35 int main(){
    36     cin>>n>>m>>ta>>tb>>k;
    37     bool flag = true;
    38     for (int i = 1; i <= n; i++){
    39         cin>>a[i];
    40         a[i] += ta;
    41     }
    42     for (int i = 1; i <= m; i++) cin>>b[i];
    43     for (int i = 0; i <= k; i++){
    44         int t = lower_bound(b + 1, b + 1 + m, a[i + 1]) - b + k - i;
    45         if (t > m){
    46             flag = false;
    47             break;
    48         }
    49         ans = max(ans, b[t] + tb);
    50     }
    51     if (n <= k || m <= k) flag = false;
    52     if (flag) cout<<ans<<endl;
    53     else cout<<-1<<endl;
    54     return 0;
    55 }
  • 相关阅读:
    写优先
    生产者消费者信号量的个人理解
    向上过滤
    操作系统之进程调度算法笔记
    idea学习
    计算机网络之网络层
    rest-framework routers
    rest framework ViewSet
    rest framework Genericview
    rest framework Views
  • 原文地址:https://www.cnblogs.com/Misuchii/p/10969610.html
Copyright © 2011-2022 走看看