牛客2025年愚人节比赛

快来扫码免费领小雪冰激凌吧~

A

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);	
	ll n;cin>>n;
	if(n==1)cout<<-1;
	else{
		for(ll i=n;i>=1;i--)cout<<i<<" ";
	}
	return 0;
}

高精度加法板子题。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	string a,b;cin>>a>>b;
	
	vector<ll> aa,bb;
	for(ll i=a.length()-1;i>=0;i--)aa.push_back(a[i]-'0');
	for(ll i=b.length()-1;i>=0;i--)bb.push_back(b[i]-'0');
	
	//for(ll i=0;i<bb.size();i++)cout<<bb[i]<<" ";
	
	ll jinwei=0,cur=0;
	vector<ll> pos;
	if(aa.size()>bb.size()){
		for(ll i=0;i<bb.size();i++){
			cur=jinwei+bb[i]+aa[i];
			if(cur>=10)jinwei=1;
			else jinwei=0;
			pos.push_back(cur%10);
		}
		for(ll i=bb.size();i<aa.size();i++){
			cur=jinwei+aa[i];
			if(cur>=10)jinwei=1;
			else jinwei=0;
			pos.push_back(cur%10);
		}
		if(jinwei!=0)pos.push_back(jinwei);
	}else if(bb.size()>aa.size()){
		for(ll i=0;i<aa.size();i++){
			cur=jinwei+bb[i]+aa[i];
			if(cur>=10)jinwei=1;
			else jinwei=0;
			pos.push_back(cur%10);
		}
		for(ll i=aa.size();i<bb.size();i++){
			cur=jinwei+bb[i];
			if(cur>=10)jinwei=1;
			else jinwei=0;
			pos.push_back(cur%10);
		}
		if(jinwei!=0)pos.push_back(jinwei);
	}else{
		for(ll i=0;i<aa.size();i++){
			cur=jinwei+bb[i]+aa[i];
			if(cur>=10)jinwei=1;
			else jinwei=0;
			pos.push_back(cur%10);
		}
		if(jinwei!=0)pos.push_back(jinwei);
	}
	for(ll i=pos.size()-1;i>=0;i--)cout<<pos[i];
	return 0;
}

C

 笑鼠,B题代码一交就ac。

D

 

 

#include<bits/stdc++.h>
using namespace std;
int a,b=0;
int main(){
	printf("烟火\n狠狠哭\n笨的可以\n诚实地想你\n又圆了的月亮");
	return 0;
}

#include<bits/stdc++.h>
using namespace std;
#define int signed long long
const int N=1e6+10, mod=1e9;
int a[N];

signed main() {
    int T;
    cin >> T;  // 读取测试用例数量
    while(T--) {
        int n, k, t;
        cin >> n >> k >> t;  // 读取停车场数量,起始停车场,返回停车场
        for(int i = 1; i <= n; i++) cin >> a[i];  // 读取每个停车场的停车费用
        
        // 计算最小停车费的规则:
        // 如果起始停车场和返回停车场相同(即 t == 1),则直接输出该停车场的费用
        cout << ((t == 1 ? a[k] : 0)) << '\n';
    }
}

 F

#include<bits/stdc++.h>
using namespace std;
const int N=11000;
int n,m;
struct node{
	string sc,t;
	int id;
}a[N];
unordered_map<string,int>cnt;
unordered_map<string,int>B;
unordered_map<string,int>C;
int bs;
string b[N];
int cs;
vector<int>ansA;
vector<int>ansB;
vector<int>ansC;
string c[N];
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;++i)cin>>a[i].sc>>a[i].t>>a[i].id;
	cin>>bs;
	for(int i=1;i<=bs;++i){
		cin>>b[i];
		B[b[i]]=1;
	}
	cin>>cs;
	for(int i=1;i<=cs;++i){
		cin>>c[i];
		C[c[i]]=1;
	}
	for(int i=1;i<=n;++i){
		if(ansA.size()<m*0.6){
			if(cnt[a[i].sc]<3)ansA.push_back(i);
			++cnt[a[i].sc];
			continue;
		}
		if(ansB.size()<m*0.3 and B[a[i].sc]){
			if(cnt[a[i].sc]<3)ansB.push_back(i);
			++cnt[a[i].sc];
			continue;			
		}
		if(ansC.size()<m*0.1 and C[a[i].sc]){
			if(cnt[a[i].sc]<3)ansC.push_back(i);
			++cnt[a[i].sc];
			continue;			
		}
	}
	cout<<ansA.size()<<'\n';
	for(auto A:ansA)cout<<a[A].sc<<" "<<a[A].t<<" "<<a[A].id<<'\n';
	cout<<ansB.size()<<'\n';
	for(auto B:ansB)cout<<a[B].sc<<" "<<a[B].t<<" "<<a[B].id<<'\n';
	cout<<ansC.size()<<'\n';
	for(auto C:ansC)cout<<a[C].sc<<" "<<a[C].t<<" "<<a[C].id<<'\n';	
}

G

 

6。果真是签退,最后几分钟交上了成功了。。。。。 

H

题目不难,字有点多 ,跟F题一样。

#include<bits/stdc++.h>
using namespace std;

typedef long long ll;
const ll MOD=1e9+7;

ll t,k,p,a;
string s;

ll qpow(ll x,ll y){
    ll res=1;
    for(;y;y>>=1,x=x*x%MOD) y&1&&(res=res*x%MOD);
    return res;
}

int main(){
    cin>>t;
    while(t--){
        cin>>k>>p>>s;
        p=p*qpow(100,MOD-2)%MOD;
        for(auto i:s){
            cin>>a;
            if(i=='1') k+=5;
            if(k>=69){
                k-=69;
                p=((100+a)*p)%MOD*qpow(100,MOD-2)%MOD;
            }
        }
        cout<<p<<"\n";
    }
}

I

 从32开始往后一个一个试,很莫名其妙,不是41,也不是i,也不是I,试着试着突然AC。。。

 J

逆天,神人好多。

#include<bits/stdc++.h>
using namespace std;

int main(){
    cout<<"3 1 11 12\n";
    cout<<"2 2 9\n";
    cout<<"2 3 14\n";
    cout<<"2 4 15\n";
    cout<<"3 5 10 16\n";
    cout<<"3 6 17 20\n";
    cout<<"3 7 18 19\n";
    cout<<"2 8 13\n";
}

K

 

 

吃汤面没吃炒面,交了炒面的钱,补交汤面的差价,使交的总钱可以换汤面 ,相当于只交了汤面的钱,没交炒面的钱。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	ll t;cin>>t;
	while(t--){
		ll x,y;cin>>x>>y;
		if(x==1&&y==1)cout<<-1<<'\n';
		else cout<<(ll)max((ll)0,y-x)<<'\n';
	}
	return 0;
}

 L

#include<bits/stdc++.h>
using namespace std;

string n;

int main(){
    cin>>n;n=" "+n;
    cout<<n.find('7')<<n.find('6');
}

 M

有1没2,有1的时候不输出2就好了。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	string n;cin>>n;
	ll idx1=-1;
	ll idx2=-1;
	if(n.find('1')==string::npos||n.find('2')==string::npos){
		//if(stoll(n)>0)cout<<n;
		//else cout<<stoll(n)*(-1);
		cout<<n;
		return 0;
	}else{
		for(ll i=0;i<n.size();i++){
			if(n[i]=='2')continue;
			else cout<<n[i];
		}
	}
	/*
	if(n.find('1')==string::npos||n.find('2')==string::npos){
		if(stoll(n)>0)cout<<n;
		else cout<<stoll(n)*(-1);
		return 0;
	}
	for(ll i=0;i<n.size();i++){
		if(idx1!=-1&&idx2!=-1)break;
		if(n[i]=='1'){
			idx1=i;
		}else if(n[i]=='2'){
			idx2=i;
		}
	}
	//cout<<idx1<<" "<<idx2;
	
	if(idx1!=-1&&idx2!=-1){
		if(idx1<idx2){
			for(ll i=0;i<n.size();i++){
				if(n[i]=='2')continue;
				else cout<<n[i];
			}
		}else{
			for(ll i=0;i<n.size();i++){
				if(n[i]=='1')continue;
				else cout<<n[i];
			}
		}
	}
	 */
	return 0;
	
}

Good night。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值