• 牛客OI周赛8-普及组


    自闭了。
    神仙出题人

    A

    #include <bits/stdc++.h>
    using namespace std;
     
    #define N 100010
    int n, a[N];
     
    bool check(int x) {
        int t = sqrt(x);
        return t * t != x;
    }
     
    int main() {
        scanf("%d", &n);
        for(int i = 1; i <= n; ++i) scanf("%d", &a[i]);
        sort(a+1,a+n+1);
        for(int i = n; i; --i) {
            if(check(a[i])) return printf("%d
    ", a[i]), 0;
        }
    }
    

    B

    数据范围很小,所以显然暴力即可。

    #include <bits/stdc++.h>
    using namespace std;
     
    #define N 1010
    int n, m, len[N], ans[N];
    char s[N][110];
    char t[40];
     
    int main() {
        scanf("%d%d", &n, &m);
        for(int i = 1; i <= n; ++i) {
            scanf("%s", s[i]+1);
            len[i] = strlen(s[i]+1);
        }
        for(int i = 1; i <= m; ++i) {
            scanf("%s",t+1); int Len = strlen(t+1);
            for(int j = 1; j <= n; ++j) {
                int l = 1;
                for(int k = 1; k <= len[j]; ++k) {
                    if(t[l] == s[j][k]) ++l;
                }
                if(l == Len+1) ans[j]++;
            }
        }
        for(int i = 1; i <= n; ++i) printf("%d
    ", ans[i]);
    }
    

    C


    高低位贪心挺显然的,不过我自己写的贪心方式出了问题....所以最后只有40

    /*
    orzcxk!
    膜cxkrp++!
    你也来膜cxk,怎样?
    */
    #include <bits/stdc++.h>
      
    #define ll long long
    #define inf 0x3f3f3f3f
    #define il inline
    #define ull unsigned long long
     
    namespace io {
      
        #define in(a) a=read()
        #define out(a) write(a)
        #define outn(a) out(a),putchar('
    ')
      
        #define I_int unsigned long long
        inline I_int read() {
            I_int x = 0 , f = 1 ; char c = getchar() ;
            while( c < '0' || c > '9' ) { if( c == '-' ) f = -1 ; c = getchar() ; }
            while( c >= '0' && c <= '9' ) { x = x * 10 + c - '0' ; c = getchar() ; }
            return x * f ;
        }
        char F[ 200 ] ;
        inline void write( I_int x ) {
            if( x == 0 ) { putchar( '0' ) ; return ; }
            I_int tmp = x > 0 ? x : -x ;
            if( x < 0 ) putchar( '-' ) ;
            int cnt = 0 ;
            while( tmp > 0 ) {
                F[ cnt ++ ] = tmp % 10 + '0' ;
                tmp /= 10 ;
            }
            while( cnt > 0 ) putchar( F[ -- cnt ] ) ;
        }
        #undef I_int
      
    }
    using namespace io ;
      
    using namespace std;
    
    #define N 100010
    
    int main() { 
    	int T; in(T);
    	while(T--) {
    		ull l = read(), r = read(), ans = 0;
    		for(ll k = 63; k >= 0; --k) {
    			if(((l>>(ull)k)&1ull)&&((r>>(ull)k)&1ull)) continue;
    			if(((l>>k)&1ull)||((r>>k)&1ull)) {ans = (1ull<<(k+1))-1ull; break;}
    		}
    		outn(ans);
    	}
    }
    

    D

    /*
    orzcxk!
    膜cxkrp++!
    你也来膜cxk,怎样?
    */
    #include <bits/stdc++.h>
       
    #define ll long long
    #define inf 0x3f3f3f3f
    #define il inline
    #define ull unsigned long long
      
    namespace io {
       
        #define in(a) a=read()
        #define out(a) write(a)
        #define outn(a) out(a),putchar('
    ')
       
        #define I_int unsigned long long
        inline I_int read() {
            I_int x = 0 , f = 1 ; char c = getchar() ;
            while( c < '0' || c > '9' ) { if( c == '-' ) f = -1 ; c = getchar() ; }
            while( c >= '0' && c <= '9' ) { x = x * 10 + c - '0' ; c = getchar() ; }
            return x * f ;
        }
        char F[ 200 ] ;
        inline void write( I_int x ) {
            if( x == 0 ) { putchar( '0' ) ; return ; }
            I_int tmp = x > 0 ? x : -x ;
            if( x < 0 ) putchar( '-' ) ;
            int cnt = 0 ;
            while( tmp > 0 ) {
                F[ cnt ++ ] = tmp % 10 + '0' ;
                tmp /= 10 ;
            }
            while( cnt > 0 ) putchar( F[ -- cnt ] ) ;
        }
        #undef I_int
       
    }
    using namespace io ;
       
    using namespace std;
     
    #define N 100010
    int n, a[N], c[N];
    #define lowbit(i) (i&-i)
    inline void add(int x, int v) { for(int i = x; i <= n; i += lowbit(i)) c[i] += v; }
    inline int query(int x) { int ans = 0; for(int i = x; i; i -= lowbit(i)) ans += c[i]; return ans; }
     
    int main() { int ans = 0, m;
        in(n); for(int i = 1; i <= n; ++i) in(a[i]);
        for(int i = 1; i <= n; ++i) ans += query(n)-query(a[i]), add(a[i],1), ans&=1; in(m);
        for(int i = 1; i <= m; ++i) {
            int l = read(), r = read(), tot = (ll)(r-l+1ll)*(r-l)/2ll; tot &= 1;
            if(tot) ans = ans^tot; puts(ans?"dislike":"like");
        }
    }
    
  • 相关阅读:
    Git常用命令
    Shell脚本学习
    Shell脚本学习
    Shell脚本学习
    Git ignore文件的用法
    RSA非对称加密算法
    C++ 标准库中的堆(heap)
    EM(Entity FrameWork)- code first , using in Visual stdio 2017
    C# 图片文字识别
    C# 调 C++ DLL 托管代码中释放非托管函数分配的内存
  • 原文地址:https://www.cnblogs.com/henry-1202/p/10586242.html
Copyright © 2020-2023  润新知