zoukankan      html  css  js  c++  java
  • #366 A-C

    A. Hulk

    题意是给你一个n 输出一个英文字符串,找下规律就发现 

    当(i!=n&&i%2==1) 输出的是 I hate that (注意大写)

    当(i!=n&&i%2==0) 输出的是 I love that (注意大写)

    当(i==n&&i%2==1) 输出的是 I love it (注意大写)

    当(i==n&&i%2==0) 输出的是 I love it (注意大写)

    注意有空格;

    #include<bits/stdc++.h>
    #define int long long
    #define MAX(a,b,c) max(a,max(b,c))
    #define MIN(a,b,c) min(a,min(b,c))
    #define pb push_back
    #define fi first
    #define se second
    typedef long long ll;
    typedef long long LL;
    typedef unsigned long long ull;
    typedef unsigned long long uLL;
    using namespace std;
    const int maxn=1e5+10;
    const int INF=0x3f3f3f3f;
    int32_t main()
    {
        int n; cin>>n;
        for(int i=1;i<n;i++)
        {
            if(i%2==1) cout<<"I hate that"<<" ";
            else       cout<<"I love that"<<" ";
        }
        if(n%2==1) cout<<"I hate it"<<endl;
        else       cout<<"I love it"<<endl;
    }
    A.cpp

     B. Spider Man

    题意有点难,每次给你以一个数n  让你去操作 输出结果;

    每次操作是找一个圈  长度为x>=2  分成1-p  p-两段  

    每个n  要去到 n-1 个点

    n为偶数时 首次可以去掉 0  2 个点         第一个操作者可以操作最后一下,第一个操作者win 

    当n为奇数时候   首次每次只能去掉1个点    就变成了奇数+偶数  第一个操作者 lost

    #include<bits/stdc++.h>
    #define int long long
    #define MAX(a,b,c) max(a,max(b,c))
    #define MIN(a,b,c) min(a,min(b,c))
    #define pb push_back
    #define fi first
    #define se second
    typedef long long ll;
    typedef long long LL;
    typedef unsigned long long ull;
    typedef unsigned long long uLL;
    using namespace std;
    const int maxn=1e5+10;
    const int INF=0x3f3f3f3f;
    int32_t main()
    {
        int n; cin>>n; int t=2;
        for(int i=1;i<=n;i++)
        {
            int x; cin>>x;
            if(x%2==1) cout<<t<<endl;
            else
            {
                if(t==1) t=2;
                else t=1;
                cout<<t<<endl;
            }
        }
    }
    B.cpp

    C. Thor

    题目意思就是n个程序发送手机通知 ,你去查看通知,问你每次剩下多少通知没看

    有3种类型  

    type 1  应用 b 发送一个通知;

    type 2   阅读 b 的所有通知;

    type 3    阅读前t个通知(可以重复阅读)

    直接暴力肯定过不了  n*p 复杂度过不去

    我们注意 单独的type2   type3 都可以用o(n)的复杂度过去

     我们就要把这两个联系在一起

    执行type2操作时 我们要去重(type3操过的 (一前type2操作))

    单独的type2时  每次type2时 总数减去 新加的amout[b] ;

    新加的mount[b] 中可能有type3操作过的; 我们要在type中减去;

    执行type3操作时候  遍历上一次 t1到这次的;

    中间有type2读过的  所以要type2要标记位置,使type3遍历时候跳过这个数

    #include<bits/stdc++.h>
    #define int long long
    #define MAX(a,b,c) max(a,max(b,c))
    #define MIN(a,b,c) min(a,min(b,c))
    #define pb push_back
    #define fi first
    #define se second
    typedef long long ll;
    typedef long long LL;
    typedef unsigned long long ull;
    typedef unsigned long long uLL;
    using namespace std;
    const int maxn=3e5+10;
    const int INF=0x3f3f3f3f;
    vector<int> vs[maxn];
    pair<int,int> pa[maxn];
    int amout[maxn];
    int  pos[maxn];
    int32_t main()
    {
        int n,q; cin>>n>>q;
        int cnt=0,sum=0;
        int p=0;
        for(int i=0;i<q;i++)
        {
            int a,b; cin>>a>>b;
            if(a==1)
            {
                vs[b].pb(cnt);
                amout[b]++;
                sum++;
                pa[cnt].first=0;
                pa[cnt].second=b;
                cnt++;
            }
            if(a==2)
            {
                sum=sum-amout[b];
                amout[b]=0;
                for(int j=pos[b];j<vs[b].size();j++)
                {
                    pa[vs[b][j]].first=1;
                }
                pos[b]=vs[b].size();
            }
            if(a==3)
            {
                for(int j=p;j<b;j++)
                {
                    if(!pa[j].first)
                    {
                        pa[j].first=1;
                        sum--;
                        amout[pa[j].second]--;
                    }
                }
                p=max(p,b);
            }
            cout<<sum<<endl;
        }
    
    }
    C.cpp
  • 相关阅读:
    隔离模式-常用的架构设计原则
    代理模式-常用的架构设计原则
    重试模式-常用的架构设计原则
    断路器模式-常用的架构设计原则
    磁盘IOPS(每秒读写次数)的计算方法与测量
    Spring深入浅出(七),自动装配,byName/byType
    Spring深入浅出(六),依赖注入,注入集合(含注入 Bean 引用)
    Spring深入浅出(五),依赖注入,构造函数/设值/注入内部Bean
    Spring深入浅出(四),Spring Bean定义继承
    【算法】算法的艺术(四)
  • 原文地址:https://www.cnblogs.com/Andromeda-Galaxy/p/9487256.html
Copyright © 2011-2022 走看看