SDUT 2021 Spring Team Contest--- 4(HDU)

74 篇文章 12 订阅
48 篇文章 0 订阅

A - Minimum’s Revenge

题目链接

答案:

#include <iostream>
#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define INF 0x3f3f3f3f
#define inf 0x3f3f3f3f3f3f3f3f
#define rep(i,a,b) for(auto i=a;i<=b;++i)
#define bep(i,a,b) for(auto i=a;i>=b;--i)
#define lowbit(x) x&(-x)
#define PII pair<int,int>
#define PLL pair<ll,ll>
#define PI acos(-1)
#define pb push_back
#define eps 1e-8
const int mod = 1e9 + 7;
const int MOD = 1e4+7;
const int N = 1e6 + 10;
const int M = 1111;
int dx[]={-1, 0, 1, 0};
int dy[]={0, 1, 0, -1};
int dxy[][2]={{0,1},{1,0},{1,1},{-1,1}};
using namespace std;

void solve(){
    ll t;
    cin>>t;
    rep(j,1,t){
        ll n;
        cin>>n;
        ll sum=0;
        sum=(1+n)*n/2-1;
        cout<<"Case #"<<j<<": ";
        cout<<sum<<endl;
    }
}

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    solve();
	return 0;
}

C - Mr. Frog’s Problem

题目链接

答案:

#include <iostream>
#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define INF 0x3f3f3f3f
#define inf 0x3f3f3f3f3f3f3f3f
#define rep(i,a,b) for(auto i=a;i<=b;++i)
#define bep(i,a,b) for(auto i=a;i>=b;--i)
#define lowbit(x) x&(-x)
#define PII pair<int,int>
#define PLL pair<ll,ll>
#define PI acos(-1)
#define pb push_back
#define eps 1e-8
const int mod = 1e9 + 7;
const int MOD = 1e4+7;
const int N = 1e6 + 10;
const int M = 1111;
int dx[]={-1, 0, 1, 0};
int dy[]={0, 1, 0, -1};
int dxy[][2]={{0,1},{1,0},{1,1},{-1,1}};
using namespace std;

void solve(){
    ll t;
    cin>>t;
    rep(j,1,t){
        ll a,b;
        cin>>a>>b;
        cout<<"Case #"<<j<<":\n";
       if(a==b){
            cout<<1<<endl;
            cout<<a<<" "<<b<<endl;
       }
       else{
            cout<<2<<endl;
            if(a>b) swap(a,b);
            cout<<a<<" "<<b<<endl;
            cout<<b<<" "<<a<<endl;
       }
    }
}

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    solve();
	return 0;
}

E - Mr. Frog’s Game

题目链接

答案:

#include <iostream>
#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define INF 0x3f3f3f3f
#define inf 0x3f3f3f3f3f3f3f3f
#define rep(i,a,b) for(auto i=a;i<=b;++i)
#define bep(i,a,b) for(auto i=a;i>=b;--i)
#define lowbit(x) x&(-x)
#define PII pair<int,int>
#define PLL pair<ll,ll>
#define PI acos(-1)
#define pb push_back
#define eps 1e-8
const int mod = 1e9 + 7;
const int MOD = 1e4+7;
const int N = 1e6 + 10;
const int M = 1111;
int dx[]={-1, 0, 1, 0};
int dy[]={0, 1, 0, -1};
int dxy[][2]={{0,1},{1,0},{1,1},{-1,1}};
using namespace std;

int mp[35][35];

void solve(){
    ll t;
    cin>>t;
    rep(tt,1,t){
        int n,m;
        cin>>n>>m;
        memset(mp,-1,sizeof(mp));
        rep(i,1,n){
            rep(j,1,m){
                cin>>mp[i][j];
            }
        }
        bool flag=0;
        for(int i=1;i<=m;i++){
            for(int j=i+1;j<=m;j++){
                if(mp[1][i]==mp[1][j]){
                    flag=1;
                    break;
                }
            }
        }
        for(int i=1;i<=m;i++){
            for(int j=i+1;j<=m;j++){
                if(mp[n][i]==mp[n][j]){
                    flag=1;
                    break;
                }
            }
        }
        for(int i=1;i<=n;i++){
            for(int j=i+1;j<=n;j++){
                if(mp[i][1]==mp[j][1]){
                    flag=1;
                    break;
                }
            }
        }
        for(int i=1;i<=n;i++){
            for(int j=i+1;j<=n;j++){
                if(mp[i][m]==mp[j][m]){
                    flag=1;
                    break;
                }
            }
        }
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                if(mp[i][j]==mp[i+1][j]||mp[i][j]==mp[i][j+1]||mp[i][j]==mp[i-1][j]||mp[i][j]==mp[i][j-1]){
                    flag=1;
                    break;
                }
            }
        }
        cout<<"Case #"<<tt<<": ";
        if(flag) cout<<"Yes"<<endl;
        else cout<<"No"<<endl;
    }
}

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    solve();
	return 0;
}

H - Basic Data Structure

题目链接

答案:

#include <iostream>
#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define INF 0x3f3f3f3f
#define inf 0x3f3f3f3f3f3f3f3f
#define rep(i,a,b) for(auto i=a;i<=b;++i)
#define bep(i,a,b) for(auto i=a;i>=b;--i)
#define lowbit(x) x&(-x)
#define PII pair<int,int>
#define PLL pair<ll,ll>
#define PI acos(-1)
#define pb push_back
#define eps 1e-8
const int mod = 1e9 + 7;
const int MOD = 1e4+7;
const int N = 4e6 + 10;
const int M = 1111;
int dx[]={-1, 0, 1, 0};
int dy[]={0, 1, 0, -1};
int dxy[][2]={{0,1},{1,0},{1,1},{-1,1}};
using namespace std;

int dp[N];
string s1="PUSH";
string s2="POP";
string s3="REVERSE";
string s4="QUERY";

void solve(){
    ll t;
    cin>>t;
    rep(tt,1,t){
        int n;
        cin>>n;
        cout<<"Case #"<<tt<<":"<<endl;

        int l=200000;
        int r=200000;
        bool dir=0;
        dp[l]=0;

        for(int kkkk=1;kkkk<=n;kkkk++){
            string s;
            cin>>s;
            if(s==s1){
                int k;
                cin>>k;
                if(!k){
                    if(!dir) dp[++r]=0;
                    else dp[--l]=0;
                }
                else{
                    if(!dir) dp[r]++;
                    else dp[l]++;
                }
            }
            else if(s==s2){
                if(!dir){
                    if(!dp[r]) r--;
                    else dp[r]--;
                }
                else{
                    if(!dp[l]) l++;
                    else dp[l]--;
                }
            }
            else if(s==s3){
                dir^=1;
            }
            else if(s==s4){
                if(l==r&&!dp[l]) cout<<"Invalid."<<endl;
                else{
                    if(!dir){
                        if(r-l>1){
                            if(dp[l]%2) cout<<"0"<<endl;
                            else cout<<"1"<<endl;
                        }
                        else{
                            if(l==r||!dp[l+1]){
                                if(dp[l]%2) cout<<"1"<<endl;
                                else cout<<"0"<<endl;
                            }
                            else{
                                if(dp[l]%2) cout<<"0"<<endl;
                                else cout<<"1"<<endl;
                            }
                        }
                    }
                    else{
                        if(r-l>1){
                            if(dp[r]%2) cout<<"0"<<endl;
                            else cout<<"1"<<endl;
                        }
                        else{
                            if(l==r||!dp[r-1]){
                                if(dp[r]%2) cout<<"1"<<endl;
                                else cout<<"0"<<endl;
                            }
                            else{
                                if(dp[r]%2) cout<<"0"<<endl;
                                else cout<<"1"<<endl;
                            }
                        }
                    }
                }
            }
        }

    }
}

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    solve();
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值