zoukankan      html  css  js  c++  java
  • The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online(2018 青岛网络预选赛)

    A题 A Live Love 原题链接:https://pintia.cn/problem-sets/1036903825309761536/problems/1041155943483625472

    
    #include<bits/stdc++.h>
    #include<stdio.h>
    #include<iostream>
    #include<cmath>
    #include<math.h>
    #include<queue>
    #include<set>
    #include<map>
    #include<iomanip>
    #include<algorithm>
    #include<stack>
    using namespace std;
    #define inf 0x3f3f3f3f
    typedef long long ll;
    
    int main()
    {
    #ifndef ONLINE_JUDGE
        //freopen("in.txt","r",stdin);
    #endif // ONLINE_JUDGE
        int t;int n,m;int ans1,ans2;
        scanf("%d",&t);
        while(t--)
        {
            cin>>n>>m;
            n=n-m;
            ans2=m;
            if(m==0)
                ans1=0;
            else if(m<=n)
                ans1=1;
            else ans1=ceil(m*1.0/(n+1));
            cout<<ans2<<" "<<ans1<<endl;
        }
    return 0;
    
    
    }
    

    C题 Halting Problem 原题链接:https://pintia.cn/problem-sets/1036903825309761536/problems/1041156042892824576

    
    #include<bits/stdc++.h>
    #include<stdio.h>
    #include<iostream>
    #include<cmath>
    #include<math.h>
    #include<queue>
    #include<set>
    #include<map>
    #include<iomanip>
    #include<algorithm>
    #include<stack>
    using namespace std;
    
    
    
    #define inf 0x3f3f3f3f
    typedef long long ll;
    
    namespace IO {
        const int MT = 10 * 1024 * 1024;  /// 10MB 请注意输入数据的大小!!!
        char IO_BUF[MT];
        int IO_PTR, IO_SZ;
        /// 要记得把这一行添加到main函数第一行!!!
        void begin() {
            IO_PTR = 0;
            IO_SZ = fread (IO_BUF, 1, MT, stdin);
        }
        template<typename T>
        inline bool scan_d (T & t) {
            while (IO_PTR < IO_SZ && IO_BUF[IO_PTR] != '-' && (IO_BUF[IO_PTR] < '0' || IO_BUF[IO_PTR] > '9'))
                IO_PTR ++;
            if (IO_PTR >= IO_SZ) return false;
            bool sgn = false;
            if (IO_BUF[IO_PTR] == '-') sgn = true, IO_PTR ++;
            for (t = 0; IO_PTR < IO_SZ && '0' <= IO_BUF[IO_PTR] && IO_BUF[IO_PTR] <= '9'; IO_PTR ++)
                t = t * 10 + IO_BUF[IO_PTR] - '0';
            if (sgn) t = -t;
            return true;
        }
        inline bool scan_s (char s[]) {
            while (IO_PTR < IO_SZ && (IO_BUF[IO_PTR] == ' ' || IO_BUF[IO_PTR] == '
    ') ) IO_PTR ++;
            if (IO_PTR >= IO_SZ) return false;
            int len = 0;
            while (IO_PTR < IO_SZ && IO_BUF[IO_PTR] != ' ' && IO_BUF[IO_PTR] != '
    ')
                s[len ++] = IO_BUF[IO_PTR], IO_PTR ++;
            s[len] = '';
            return true;
        }
        template<typename T>
        void print(T x) {
            static char s[33], *s1; s1 = s;
            if (!x) *s1++ = '0';
            if (x < 0) putchar('-'), x = -x;
            while(x) *s1++ = (x % 10 + '0'), x /= 10;
            while(s1-- != s) putchar(*s1);
        }
        template<typename T>
        void println(T x) {
            print(x); putchar('
    ');
        }
    };
    using namespace IO;
    using namespace std;
    
    char ins[10005];
    int a[10005];
    int b[10005];
    bool vis[10005][300];
    int main()
    {
    #ifndef ONLINE_JUDGE
        freopen("in.txt","r",stdin);
    #endif // ONLINE_JUDGE
    begin();
        int t;
        scan_d(t);char opt[10];
        int n;
        int v,k;
        int r;
        while(t--)
        {
            memset(vis,0,sizeof(vis));
            scan_d(n);
            r=0;
            int n2=n;
            int cnt=1;
            while(n--)
            {
                scan_s(opt);
                if(opt[1]=='d')
                {
                    scan_d(v);
                    ins[cnt]=opt[1];
                    a[cnt]=v;
                    cnt++;
                }
                else if(opt[1]=='e')
                {
                    scan_d(v);
                    scan_d(k);
                    ins[cnt]=opt[1];
                    a[cnt]=v;
                    b[cnt]=k;
                    cnt++;
                }
                else if(opt[1]=='n')
                {
                    scan_d(v);
                    scan_d(k);
                    ins[cnt]=opt[1];
                    a[cnt]=v;
                    b[cnt]=k;
                    cnt++;
                }
                else if(opt[1]=='l')
                {
                   scan_d(v);
                    scan_d(k);
                    ins[cnt]=opt[1];
                    a[cnt]=v;
                    b[cnt]=k;
                    cnt++;
                }
                else if(opt[1]=='g')
                {
                    scan_d(v);
                    scan_d(k);
                    ins[cnt]=opt[1];
                    a[cnt]=v;
                    b[cnt]=k;
                    cnt++;
                }
            }
    
    
            int i=1;
            bool  f=1;char op;
            while(i!=(n2+1))
            {
                if(i<=0||i>n2+1){f=0;break;}
                op=ins[i];
                if(op=='d')
                {
                    if(!vis[i][r]){vis[i][r]=1;}
                    else {f=0;break;}
                    r=(r+a[i])%256;
                }
                else if(op=='e')
                {if(!vis[i][r]){vis[i][r]=1;}
                    else {f=0;break;}
                    if(r==a[i]){i=b[i];continue;}
                }
                else if(op=='n')
                {
                    if(!vis[i][r]){vis[i][r]=1;}
                    else {f=0;break;}
                   if(r!=a[i]){i=b[i];
    
                   continue;}
                }
                else if(op=='l')
                {if(!vis[i][r]){vis[i][r]=1;}
                    else {f=0;break;}
                   if(r<a[i]){i=b[i];
                   continue;}
                }
                else if(op=='g')
                {
                    if(!vis[i][r]){vis[i][r]=1;}
                    else {f=0;break;}
                    if(r>a[i]){i=b[i];
                    continue;}
                }
                i++;
            }
    
            if(f)puts("Yes");
            else puts("No");
    
        }
    
    
    return 0;
    
    
    }
    
    
    

    H Traveling on the Axis 原题链接:https://pintia.cn/problem-sets/1036903825309761536/problems/1041156323504345088

    队友代码:

    #include <bits/stdc++.h>
    #include <cstdio>
    #include <algorithm>
    #include <queue>
    #include <cstring>
    #include <map>
    #include <set>
    #include <vector>
    #include <iostream>
    #include <stack>
    #define rep(i,n) for(int i=0;i<(n);i++)
    #define mst(x,i) memset(x,i,sizeof(x))
    using namespace std;
    const int INF = 0x3f3f3f3f;
    typedef long long ll;
    const int maxn =  1e5+5;
    char s[maxn];
    
    ll c[maxn],sumc[maxn],sum0[maxn],sumcc[maxn];
    int n;
    
    void solve() {
    	n = strlen(s);
    	c[0]=0;
    	for(int i=1;i<n;i++) {
    		if(s[i]==s[i-1]) {
    			c[i]=1;
    		}else {
    			c[i]=0;
    		}
    	}
    	
    	sumc[0]=0;
    	for(int i=1;i<n;i++) {
    		sumc[i]=sumc[i-1]+c[i];
    	}
    	
    	if(s[0]=='0') sum0[0]=1;
    	else sum0[0]=0;
    	
    	for(int i=1;i<n;i++) {
    		int f=1-(s[i]-'0');
    		sum0[i]=sum0[i-1]+f;
    	}
    	
    	sumcc[0]=sumc[0];
    	for(int i=1;i<n;i++) {
    		int f=0;
    		if(c[i]) f=i;
    		sumcc[i]=sumcc[i-1]+f;
    	}
    	
    	ll ans=0;
    	for(ll i=1;i<=n;i++) {
    		ans += i*(i+1)/2;
    		ans += sumcc[i-1];
    		ans += sum0[i-1];
    	}
    	cout<<ans<<endl;
    }
    
    
    int main() {
    #ifndef ONLINE_JUDGE
    	freopen("data.in","r",stdin);
    #endif
    	int T;
    	scanf("%d",&T);
    	while(T--) {
    		scanf("%s",s);
    		solve();
    	}
    }
    

    K XOR Clique 原题链接:https://pintia.cn/problem-sets/1036903825309761536/problems/1041156503909756928

    队友代码:

    #include <bits/stdc++.h>
    #include <cstdio>
    #include <algorithm>
    #include <queue>
    #include <cstring>
    #include <map>
    #include <set>
    #include <vector>
    #include <iostream>
    #include <stack>
    #define rep(i,n) for(int i=0;i<(n);i++)
    #define mst(x,i) memset(x,i,sizeof(x))
    using namespace std;
    const int INF = 0x3f3f3f3f;
    typedef long long ll;
    const int maxn = 1e5+5;
    int a[maxn],n;
    int c[64];
    
    void solve() {
    	for(int i=0;i<n;i++) {
    		for(int j=31;j>=0;j--) {
    			if( (1<<j)&a[i] ) {
    				c[j]++;
    				break;
    			}
    		}
    	}
    	int ans=-1;
    	for(int i=0;i<32;i++) ans=max(ans,c[i]);
    	cout<<ans<<endl;
    }
    		
    
    int main() {
    #ifndef ONLINE_JUDGE
    	freopen("data.in","r",stdin);
    #endif
    	int T;
    	scanf("%d",&T);
    	while(T--) {
    		scanf("%d",&n);
    		memset(c,0,sizeof(c));
    		for(int i=0;i<n;i++) scanf("%d",&a[i]);
    		solve();
    	}
    	return 0;
    }
    
  • 相关阅读:
    winston写日志(译)
    H5打字机特效
    Flutter 手指放大 平移 旋转 Widget
    51nod1432【贪心】
    死锁的例子
    C# SpinLock用法。
    鼓音效
    rm-rf
    cdoj 1334 郭大侠与Rabi-Ribi Label:贪心+数据结构
    1092 回文字符串(51nod)
  • 原文地址:https://www.cnblogs.com/linruier/p/9726792.html
Copyright © 2011-2022 走看看