分析 : 各种方式模拟均可 , 我最不擅长的就是这类题。尤其不擅长签到,写了快半个小时
code :
//PS : 看看人家的代码 , 我还是太垃圾了 https://ac.nowcoder.com/acm/contest/view-submission?submissionId=41056869
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
vector<ll> u,v,p;
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        ll a,b;
        scanf("%lld%lld",&a,&b);
        u.clear(); v.clear(); p.clear();
        while(a)
        {
            u.push_back(a%10);
            a/=10;
        }
        while(b)
        {
            v.push_back(b%10);
            b/=10;    
        }
        reverse(u.begin(),u.end());
        reverse(v.begin(),v.end());
        for(vector<ll>::iterator it=u.begin();it!=u.end();it++) 
            if(*it!=0) break;
            else u.erase(it);
        for(vector<ll>::iterator it=v.begin();it!=v.end();it++) 
            if(*it!=0) break;
            else v.erase(it);    
        int A=u.size(),B=v.size();
        if(A>B) for(int i=1;i<=A-B;i++) v.push_back(0);
        else for(int i=1;i<=B-A;i++) u.push_back(0);
        reverse(u.begin(),u.end());
        reverse(v.begin(),v.end());
        ll ans=0,j=1;
        for(int i=u.size()-1;i>=0;i--) {
            ans+=(u[i]+v[i])*j;
            j*=10;
        }
        while(ans%10==0) ans/=10;
        while(ans)
        {
            printf("%lld",ans%10);
            ans/=10;
        }
        printf("\n");
    }
    return 0;
} 
D: Number
分析:签到
code :
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
	ll n,p,tmp;
	cin>>n>>p;
	tmp=p;
	ll cnt=0,t=0;
	while(tmp)
	{
		cnt++;
		tmp/=10;
	}
	if(cnt<n) {
		cout<<p;
		for(int i=1;i<=n-cnt;i++) cout<<"0";
	}
	else {
		if(cnt>n) cout<<"T_T";
		else cout<<p;
	}
	return 0;
}
分析 : 只有常数 ,一次多项式,二次多项式地b^2-4ac<0 无法分解
code :
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 23;
ll a[maxn];
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int n;
        scanf("%d",&n);
        for(int i=n;i>=0;i--) scanf("%lld",&a[i]);
        if(n==1||n==0) printf("Yes\n");
        else if(n==2) {
            if(a[1]*a[1]-4*a[2]*a[0]>=(ll)0) printf("No\n");
            else printf("Yes\n");
        }
        else printf("No\n");
    }
    return 0;
}