J : A+B problem
分析 : 各种方式模拟均可 , 我最不擅长的就是这类题。尤其不擅长签到,写了快半个小时
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;
} 
京公网安备 11010502036488号