⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1007.cpp

📁 我的URAL的1000 ~ 1050 的全部代码 包含WA 最后AC的程序 有2~3个比较难的是MAIGO的程序
💻 CPP
字号:
#include <iostream>#include <string>using namespace std;const int maxL = 1000;int n, len;string ori;							//下标范围 0---len-1int a_1[maxL+1], a_0[maxL+1];	//为了使用a[0],下标范围是1---lenint calcS(){	int i, s = 0;	for( i = 0; i < len; i++ )		if(ori[i]=='1')s+= i+1;	return s;}int calcArr(){	int i;	memset( a_1,0,sizeof(a_1) );	memset( a_0,0,sizeof(a_0) );	for( i = 1; i <= len; i++ )	{		a_0[i] = a_0[i-1] + ((ori[i-1] == '0') ? 1 : 0); 		a_1[i] = a_1[i-1] + ((ori[i-1] == '1') ? 1 : 0); 	}}void solve1(){	int sum = calcS();	sum %= n+1;	if(sum == 0)return;	ori[sum - 1] = '0';}void solve2(){	int i;	string ins;	int sum = calcS();	calcArr();	sum %= n+1;	sum = (n+1 - sum)%(n+1);	if( sum <= a_1[len] )	//insert 0	{		ins = "0";		for( i  = 0; i <= len; i++ )			if( sum == a_1[len] - a_1[i] )				{ori.insert(i,ins); return; }	}	if( sum > a_1[len] )	//insert 1	{		sum = n - sum;		ins = "1";		for( i = 0; i <= len; i++ )			if( sum == a_0[len] - a_0[i] )				{ ori.insert(i,ins); return; }	}}void solve3(){	int i;	int sum = calcS();	calcArr();	sum %= n+1;		if( sum  == 0 ){ ori.erase(len-1);return; }	if( sum <= a_1[len] )	//del 0	{		for( i = 0 ; i <= len ; i++)			if( sum == a_1[len] - a_1[i] )				{ori.erase( i , 1 );return;}	}	if( sum > a_1[len] )	//del 1	{			sum = n - sum;		for( i = 0 ; i <= len ; i++ )			if( sum == a_0[len] - a_0[i] )				{ori.erase( i - 2, 1 );return;}	}}int main(){	int i;	cin >> n;	while(cin >> ori)	{		len = ori.length();		if( len == n ) solve1();		else if( len == n-1 ) solve2();		else if( len == n+1 ) solve3();		else continue;				cout << ori << endl;	}	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -