• 南京理工大学第八届校赛题目题解(部分)


    https://icpc.njust.edu.cn/Contest/749/rank/、

    a偷吃糖果

    思路:读入的时候相同的字母合并成一个字母。最后比较一下。

    /* ***********************************************
    Author        :guanjun
    Created Time  :2016/4/17 12:37:02
    File Name     :njusta.cpp
    ************************************************ */
    #include <iostream>
    #include <cstring>
    #include <cstdlib>
    #include <stdio.h>
    #include <algorithm>
    #include <vector>
    #include <queue>
    #include <set>
    #include <map>
    #include <string>
    #include <math.h>
    #include <stdlib.h>
    #include <iomanip>
    #include <list>
    #include <deque>
    #include <stack>
    #define ull unsigned long long
    #define ll long long
    #define mod 90001
    #define INF 0x3f3f3f3f
    #define maxn 10010
    #define cle(a) memset(a,0,sizeof(a))
    const ull inf = 1LL << 61;
    const double eps=1e-5;
    using namespace std;
    priority_queue<int,vector<int>,greater<int> >pq;
    struct Node{
        int x,y;
    };
    int main()
    {
        #ifndef ONLINE_JUDGE
        freopen("in.txt","r",stdin);
        #endif
        //freopen("out.txt","w",stdout);
        int T;
        string s,t;
        cin>>T;
        while(T--){
            cin>>s>>t;
            string ss="";
            ss+=s[0];
            string tt="";
            tt+=t[0];
            int tmp=0;
            for(int i=1;i<s.size();i++){
                if(s[i]==ss[tmp])continue;
                tmp++;
                ss+=s[i];
            }
            tmp=0;
            for(int i=1;i<t.size();i++){
                if(t[i]==tt[tmp])continue;
                tmp++;
                tt+=t[i];
            }
            //cout<<ss<<" "<<tt<<endl;
            if(ss==tt)puts("Yes");
            else puts("No");
        }
        return 0;
    }
    View Code

    c. count_prime

    这是hduoj上的原题。容斥基础题。

    #include <iostream>
    #include <cstring>
    #include <cstdlib>
    #include <stdio.h>
    #include <algorithm>
    #include <vector>
    #include <queue>
    #include <set>
    #include <map>
    #include <string>
    #include <math.h>
    #include <stdlib.h>
    #include <iomanip>
    #include <list>
    #include <deque>
    #include <stack>
    #define ull unsigned long long
    #define ll long long
    #define mod 90001
    #define INF 0x3f3f3f3f
    #define maxn 10000+10
    #define cle(a) memset(a,0,sizeof(a))
    const ull inf = 1LL << 61;
    const double eps=1e-5;
    using namespace std;
    
    bool cmp(int a,int b){
        return a>b;
    }
    ll a,b,n;
    ll solve(){
        ll sum=0;
        vector<ll>v;
        for(int i=2;i*i<=n;i++)
            if(n%i==0){
                v.push_back(i);
                while(n%i==0)n/=i;
            }
        if(n>1)v.push_back(n);
        for(ll st=1;st<(1<<(v.size()));++st){//0 1
            ll bits=0,mult=1;
            for(int i=0;i<(int)v.size();++i){
                if(st&(1<<i)){
                    ++bits;
                    mult*=v[i];
                }    
            }
            ll cur=b/mult-a/mult;
            if(a%mult==0)cur++;
            if(bits&1)sum+=cur;
            else sum-=cur;
        }
        return b-a-sum+1;
    }
    int main()
    {
        #ifndef ONLINE_JUDGE
        freopen("in.txt","r",stdin); 
        #endif
        //freopen("out.txt","w",stdout);
        int t;
        cin>>t;
        for(int i=1;i<=t;i++){
            scanf("%I64d %I64d %I64d",&a,&b,&n);
            printf("%lld
    ",solve());
        }
        return 0;
    }
    View Code

    f.sequence

    暴力一发

    #include <iostream>
    #include <cstring>
    #include <cstdlib>
    #include <stdio.h>
    #include <algorithm>
    #include <vector>
    #include <queue>
    #include <set>
    #include <map>
    #include <string>
    #include <math.h>
    #include <stdlib.h>
    #include <iomanip>
    #include <list>
    #include <deque>
    #include <stack>
    #define ull unsigned long long
    #define ll long long
    #define mod 90001
    #define INF 0x3f3f3f3f
    #define maxn 10010
    #define cle(a) memset(a,0,sizeof(a))
    const ull inf = 1LL << 61;
    const double eps=1e-5;
    using namespace std;
    priority_queue<int,vector<int>,greater<int> >pq;
    struct Node{
        int x,y;
    };
    
    bool cmp(int a,int b){
        return a>b;
    }
    int dp[maxn],n,x,mark;
    int main()
    {
        #ifndef ONLINE_JUDGE
        freopen("in.txt","r",stdin);
        #endif
        //freopen("out.txt","w",stdout);
        int t;
        cin>>t;
        while(t--){
            cin>>n;
            int m=1;
            dp[1]=-INF;
            for(int i=1;i<=n;i++){
                scanf("%d",&x);
                mark=0;
                for(int j=1;j<=m;j++){
                    if(dp[j]<=x){
                        dp[j]=x;
                        mark=1;
                        break;
                    }
                }
                if(mark==0)dp[++m]=x;
            }
            printf("%d
    ",m);
        }
        return 0;
    }
    View Code

    h.谁才是最强战舰!

    博弈 模板题

    #include <iostream>
    #include <cstring>
    #include <cstdlib>
    #include <stdio.h>
    #include <algorithm>
    #include <vector>
    #include <queue>
    #include <set>
    #include <map>
    #include <string>
    #include <math.h>
    #include <stdlib.h>
    #include <iomanip>
    #include <list>
    #include <deque>
    #include <stack>
    #define ull unsigned long long
    #define ll long long
    #define mod 90001
    #define INF 0x3f3f3f3f
    #define maxn 10010
    #define cle(a) memset(a,0,sizeof(a))
    const ull inf = 1LL << 61;
    const double eps=1e-5;
    using namespace std;
    priority_queue<int,vector<int>,greater<int> >pq;
    
    int n;
    bool Calculate() { 
        int i,x,xor_sum=0; 
        bool flag=1; 
        cin>>n; 
        for(i=1;i<=n;i++) { 
            scanf("%d",&x); 
            if(x^1) flag=0; xor_sum^=x;
        }
        if(flag)return !xor_sum;
        else return xor_sum; 
    } 
    int main(){
        #ifndef ONLINE_JUDGE
        freopen("in.txt","r",stdin);
        #endif
        //freopen("out.txt","w",stdout);
        int T,i; 
        for(cin>>T;T;T--) { 
            if(Calculate())puts("Yamato_Saikou!"); 
            else puts("Meidikeji_Shijiediyi!");
        } 
        return 0;
    }
    View Code

    j.water1

    #include <iostream>
    #include <cstring>
    #include <cstdlib>
    #include <stdio.h>
    #include <algorithm>
    #include <vector>
    #include <queue>
    #include <set>
    #include <map>
    #include <string>
    #include <math.h>
    #include <stdlib.h>
    #include <iomanip>
    #include <list>
    #include <deque>
    #include <stack>
    #define ull unsigned long long
    #define ll long long
    #define mod 90001
    #define INF 0x3f3f3f3f
    #define maxn 100100
    #define cle(a) memset(a,0,sizeof(a))
    const ull inf = 1LL << 61;
    const double eps=1e-5;
    using namespace std;
    priority_queue<int,vector<int>,greater<int> >pq;
    
    bool cmp(int a,int b){
        return a>b;
    }
    int a[maxn];
    int b[maxn];
    int main()
    {
        #ifndef ONLINE_JUDGE
        freopen("in.txt","r",stdin);
        #endif
        //freopen("out.txt","w",stdout);
        int n;
        while(scanf("%d",&n)!=EOF){
            if(n==0){printf("%d
    ",1);continue;}
            int Max=-1;
            for(int i=1;i<=n;i++){
                scanf("%d%d",&b[i],&a[i]);
                Max=max(b[i],Max);
            }
            ll ans=0;
            Max++;
            //cout<<Max<<endl;
            for(int i=1;i<=n;i++){
                ans+=a[i]*(Max-b[i]);
            }
            printf("%lld
    ",ans);
        }
        return 0;
    }
    View Code

    还有些 题目不会做。以后要补 官方题解https://icpc.njust.edu.cn/gist/comzyh/a36db955-1113-4fa2-9000-2beb0bdc7201/

  • 相关阅读:
    常用浏览器内核
    点透问题及解决
    移动端click延迟和tap事件
    CommandoVM-虚拟机映像文件 | VM打开直接用
    Crackme006
    CrackMe005-下篇 | 逆向破解分析 | 160个CrackMe(视频+图文)深度解析系列
    拼多多被薅-谈网络安全中最后的屏障
    一次VB汇编中看-溢出计算
    CM005-逆向分析过程(上篇)
    CrackMe-005全破详解(图文+源码)--上篇
  • 原文地址:https://www.cnblogs.com/pk28/p/5403909.html
Copyright © 2020-2023  润新知