8月集训 DAY8

多项式输出

错误原因

忘记次幂为一时, 系数如果为1 只输出x

思路

分类讨论 写几个判断

代码

#include<bits/stdc++.h>
using namespace std;
int a[110]; 
int main()
{		
	freopen("poly.in","r",stdin);
	freopen("poly.out","w",stdout);
	string s;
	int n,x;
	cin>>n;
	x=n;
	for(int i=n;i>=0;i--) cin>>a[i];
	for(int i=n;i>=0;i--)
	{
		if(a[i]==0) 
		{
			x--;
			continue;
		}
		if(i==x)
		{
			if(a[i]<0) cout<<'-';
			if(i!=1&&i!=0)
			{
				if(a[i]!=1&&a[i]!=-1) cout<<abs(a[i])<<"x^"<<i;
				else cout<<"x^"<<i;
			}
			else
			{
				if(i==1)
				{
					if(a[i]!=1&&a[i]!=-1) cout<<abs(a[i])<<"x";
					else cout<<"x";
				}
				else
				{
					cout<<abs(a[i]);
				}
			}
			x=1000; 
		}
		else if(i!=1)
		{
			if(a[i]<0) cout<<'-';
			else cout<<'+';
			if((a[i]!=1&&a[i]!=-1)||i==0)
			{
				if(i!=0) cout<<abs(a[i])<<"x^"<<i;
				else cout<<abs(a[i]);
			}
			else
			{
				cout<<"x^"<<i;
			}
		}
		else
		{
			if(a[i]<0) cout<<'-';
			else cout<<'+';
			if(a[i]!=1)cout<<abs(a[i])<<'x';
			else cout<<'x';
		}
	}
}

潜伏者

错误原因

思路

代码

#include<bits/stdc++.h>
using namespace std;
int a[100];
int main()
{
	freopen("spy.in","r",stdin);
	freopen("spy.out","w",stdout);
	map<char,int> mp;
	map<char,char> mp2;
	string s1,s2,s3;
	cin>>s1>>s2>>s3;
	for(int i=0;i<s2.size();i++)
	{
		int x=int(s2[i]);
		a[x]=1;
	}
	for(int i=65;i<=90;i++) 
	{
		if(!a[i])
		{
			cout<<"Failed";
			return 0;
		}
	}
	for(int i=0;i<s1.size();i++)
	{
		if(mp[s1[i]]==0)
		{
			mp2[s1[i]]=s2[i];
			mp[s1[i]]=1;
		}
		else
		{
			if(mp2[s1[i]]!=s2[i])
			{
				cout<<"Failed";
				return 0;
			}
		}
	}
	for(int i=0;i<s3.size();i++)
	{
		s3[i]=mp2[s3[i]];
	}
	for(int i=0;i<s3.size();i++) cout<<s3[i];
}