湖南大学校赛补题

A.`

#include<bits/stdc++.h>
using namespace std;
#define d1(a) {cout<<#a<<"="<<(a)<<'\n';}
#define d2(a,b) {cout<<#a<<"="<<(a)<<"   "<<#b<<"="<<(b)<<'\n';}
#define d3(a,b,c) {cout<<#a<<"="<<(a)<<"   "<<#b<<"="<<(b)<<"   "<<#c<<"="<<(c)<<'\n';}
#define D1(a) {cout<<#a<<"里的元素为 ";for(int i=0;i<a.size();i++)cout<<a[i]<<' ';cout<<'\n';}
#define D2(a) {cout<<#a<<"里的元素为 ";for(auto [x,y]:a)cout<<x<<' '<<y<<"    ";cout<<'\n';}
#define D3(a) {cout<<#a<<"里的元素为 ";for(auto [x,y,z]:a)cout<<x<<' '<<y<<' '<<z<<"    ";cout<<'\n';}
int get(int a,int b,int c,int d){
    return a*c+b*d;
}
int pf(int x){
    return x*x;
}
void solve(){
    int a,b,c,d,e,f;cin>>a>>b>>c>>d>>e>>f;
    vector<int>x={pf(a-c)+pf(b-d),pf(a-e)+pf(b-f),pf(c-e)+pf(d-f)};
    sort(x.begin(),x.end());
    if(sqrt(x[0])+sqrt(x[1])-sqrt(x[2])<(1e-6)){cout<<"invalid\n";return;}
    int x1=get(a-c,b-d,a-e,b-f),x2=get(c-a,d-b,c-e,d-f),x3=get(e-c,f-d,e-a,f-b);
    if(x1<0||x2<0||x3<0)cout<<"obtuse";
    else if(x1==0||x2==0||x3==0)cout<<"right";
    else cout<<"acute";
    cout<<'\n';
}
int main(){
    ios::sync_with_stdio(false);cin.tie(0);
    int t;cin>>t;
    while(t--)
        solve();
    return 0;
}`

B.

#include<bits/stdc++.h>
using namespace std;
int n,x;
void bfs(){
    queue<pair<int,int> >s;
    if(n==1){cout<<0;return;}
    s.push({1,0});
    vector<bool>vis(n);
    while(s.size()>0){
        auto [k,cnt]=s.front();s.pop();
        if(k==0){cout<<cnt;return;}
        if(vis[k]==1)continue;
        vis[k]=1;
        s.push({10*k%n,cnt+1});
        s.push({(x-1+k)%n,cnt+1});
    }
    cout<<-1;
}
void solve(){
    cin>>n>>x;
    bfs();
}
int main(){
    solve();
    return 0;
}

D

#include<bits/stdc++.h>
using namespace std;
#define d1(a) {cout<<#a<<"="<<(a)<<'\n';}
#define d2(a,b) {cout<<#a<<"="<<(a)<<"   "<<#b<<"="<<(b)<<'\n';}
#define d3(a,b,c) {cout<<#a<<"="<<(a)<<"   "<<#b<<"="<<(b)<<"   "<<#c<<"="<<(c)<<'\n';}
#define D1(a) {cout<<#a<<"里的元素为 ";for(int i=0;i<a.size();i++)cout<<a[i]<<' ';cout<<'\n';}
#define D2(a) {cout<<#a<<"里的元素为 ";for(auto [x,y]:a)cout<<x<<' '<<y<<"    ";cout<<'\n';}
#define D3(a) {cout<<#a<<"里的元素为 ";for(auto [x,y,z]:a)cout<<x<<' '<<y<<' '<<z<<"    ";cout<<'\n';}
int get(int a,int b,int c,int d){
    return a*c+b*d;
}
int pf(int x){
    return x*x;
}
void solve(){
    double n,m;cin>>n>>m;
    cout<<(m+n-1)/n;
}
int main(){
    ios::sync_with_stdio(false);cin.tie(0);
    cout<<fixed<<setprecision(6);
    solve();
    return 0;
}

F

a=int(input())
b=int(input())
c=int(input())
print(a+b+c)

G

#include<bits/stdc++.h>
using namespace std;
#define d1(a) {cout<<#a<<"="<<(a)<<'\n';}
#define d2(a,b) {cout<<#a<<"="<<(a)<<"   "<<#b<<"="<<(b)<<'\n';}
#define d3(a,b,c) {cout<<#a<<"="<<(a)<<"   "<<#b<<"="<<(b)<<"   "<<#c<<"="<<(c)<<'\n';}
#define D1(a) {cout<<#a<<"里的元素为 ";for(int i=0;i<a.size();i++)cout<<a[i]<<' ';cout<<'\n';}
#define D2(a) {cout<<#a<<"里的元素为 ";for(auto [x,y]:a)cout<<x<<' '<<y<<"    ";cout<<'\n';}
#define D3(a) {cout<<#a<<"里的元素为 ";for(auto [x,y,z]:a)cout<<x<<' '<<y<<' '<<z<<"    ";cout<<'\n';}
void solve(){
    string a,b;cin>>a>>b;
    if(a==b){cout<<0;return;}
    if(a.size()<b.size())swap(a,b);
    int B=0;
    while(B<b.size()&&a[B]==b[B])B++;B--;
    int det=a.size()-b.size(),E=b.size();
    while(E>=0&&a[E+det]==b[E])E--;
    //d2(B,E)
    cout<<(B==E?1:2);
}
int main(){
    ios::sync_with_stdio(false);cin.tie(0);
    solve();
    return 0;
}

I

#include<bits/stdc++.h>
using namespace std;
//#define int ll
#define ll long long
#define mod 1000000007
#define rep(i,be,en) for(int i=be;i<=en;i++)
const int INF = 0x3f3f3f3f;
const ll inf=0x3f3f3f3f3f3f3f3f;
//const double pi=acos(-1);
using namespace std;
const int N=1e5+7;
const int M=1e6+7;

inline int read(){
    char c=getchar();int x=0,f=1;
    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;
}

int T,n,m,fl,ans;
int a[N];
ll x;
bool check(ll y){
	if((y+1)*y/2>=x) return true;
	return false;
}

signed main(){
	T=read();
	while(T--){
		
		cin>>x;
		ll l=1,r=2000000000,ans=2000000000;
		while(l<=r){
			ll mid=(l+r)>>1;
			if(check(mid)){
				ans=mid;
				r=mid-1;
			}else{
				l=mid+1;
			}
		}
		printf("%lld\n",ans);
	}
	
    return 0;
}


L

#include<bits/stdc++.h>
using namespace std;
#define d1(a) {cout<<#a<<"="<<(a)<<'\n';}
#define d2(a,b) {cout<<#a<<"="<<(a)<<"   "<<#b<<"="<<(b)<<'\n';}
#define d3(a,b,c) {cout<<#a<<"="<<(a)<<"   "<<#b<<"="<<(b)<<"   "<<#c<<"="<<(c)<<'\n';}
#define D1(a) {cout<<#a<<"里的元素为 ";for(int i=0;i<a.size();i++)cout<<a[i]<<' ';cout<<'\n';}
#define D2(a) {cout<<#a<<"里的元素为 ";for(auto [x,y]:a)cout<<x<<' '<<y<<"    ";cout<<'\n';}
#define D3(a) {cout<<#a<<"里的元素为 ";for(auto [x,y,z]:a)cout<<x<<' '<<y<<' '<<z<<"    ";cout<<'\n';}
map<pair<int,int>,bool>y[7],e[7];
const vector<pair<int,int> >fx={{1,0},{-1,0},{0,-1},{0,1}};
int n,m;
vector<vector<int> >roa;
void bfs(){
    if(y[roa[1][1]][fx[3]]==0){cout<<"NO";return;}
    queue<pair<int,int> >s;
    s.push({1,1});
    vector<vector<bool> >vis(n+3,vector<bool>(m+3));
    //vis[1][1]=1;
    while(s.size()>0){
        auto [x,y1]=s.front();s.pop();//d2(x,y1)
        if(x==n&&y1==m+1){cout<<"YES";return;}
        if(vis[x][y1]==1)continue;
        vis[x][y1]=1;
        for(auto [dx,dy]:fx){
            if(e[roa[x][y1]][{dx,dy}]==0)continue;
            int X=x+dx,Y=y1+dy;
            if(roa[X][Y]!=0&&y[roa[X][Y]][{dx,dy}]==1)s.push({X,Y});
        }
    }
    cout<<"NO";
}
void solve(){
    cin>>n>>m;
    roa.resize(n+3,vector<int>(m+3));
    roa[n][m+1]=2;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            cin>>roa[i][j];
    bfs();
}
int main(){
    ios::sync_with_stdio(false);cin.tie(0);
    y[1][fx[0]]=y[1][fx[1]]=1;
    y[2][fx[2]]=y[2][fx[3]]=1;
    y[3][fx[1]]=y[3][fx[2]]=1;
    y[4][fx[0]]=y[4][fx[3]]=1;
    y[5][fx[0]]=y[5][fx[2]]=y[5][fx[3]]=1;
    y[6][fx[1]]=y[6][fx[2]]=y[6][fx[3]]=1;
    
    e[1][fx[0]]=e[1][fx[1]]=1;
    e[2][fx[2]]=e[2][fx[3]]=1;
    e[3][fx[0]]=e[3][fx[3]]=1;
    e[4][fx[1]]=e[4][fx[2]]=1;
    e[5][fx[1]]=e[5][fx[2]]=e[5][fx[3]]=1;
    e[6][fx[0]]=e[6][fx[2]]=e[6][fx[3]]=1;
    solve();
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值