dalao求调
  • 板块P2104 二进制
  • 楼主Wenze_Li
  • 当前回复5
  • 已保存回复5
  • 发布时间2025/8/4 20:36
  • 上次更新2025/8/5 10:37:48
查看原帖
dalao求调
1400123
Wenze_Li楼主2025/8/4 20:36

死循环了,但是代码中丝毫没有死循环的迹象,dalao求调

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int N=1e7+5;
int n,m,mp[128];
char c,a[N];
void f1(){
	//cout<<"f1ing\n";
	a[1]++;
	if(a[1]>1){
		for(int i=1;i<=n&&a[i]>1;i++)a[i+1]++,a[i]=0;
		if(a[n+1])n++;
	}
}
void f2(){
	//cout<<"f2ing\n";
	a[1]--;
	if(a[1]<0){
		for(int i=1;i<=n&&a[i]<0;i++)a[i+1]--,a[i]=1;
		if(!a[n])n--;
	}
	if(!n)n=1;
}
void f3(){
	//cout<<"f3ing\n";
	for(int i=n+1;i>=1;i++)a[i]=a[i-1];
	n++;
}
void f4(){
	//cout<<"f4ing\n";
	for(int i=1;i<=n;i++)a[i]=a[i+1];
	n--;
	if(!n)n=1;
}
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	cin>>n>>m;
	for(int i=1;i<=n;i++)cin>>a[i];
	for(int i=1;i<=n/2;i++)swap(a[i],a[n-i+1]);
	while(m--){
		cin>>c;
		mp[c]++;
	}
	if(mp['+']>mp['-']){
		for(int i=1;i<=mp['+']-mp['-'];i++){
			f1();
		}
	}
	else{
		for(int i=1;i<=mp['-']-mp['+'];i++){
			f2();
		}
	}
	if(mp['*']>mp['/']){
		for(int i=1;i<=mp['*']-mp['/'];i++){
			f3();
		}
	}
	else{
		for(int i=1;i<=mp['/']-mp['*'];i++){
			f4();
		}
	}
	for(int i=n;i>=1;i--)cout<<a[n];
	return 0;
}
2025/8/4 20:36
加载中...