sunxiaofan @ 2019-04-02 22:59:02
#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<queue>
#include<vector>
#include<stack>
using namespace std;
int geshu,t;
struct node1
{
int n,a,num,ans1;
}x[15];
int ans[3500];
bool mm1(node1 v1,node1 v2)
{
return v1.n <v2.n;
}
void sear(int v)
{
bool flag=0;
for(int i=v*3;i>0;i--)
{
if(ans[i])flag=1;
if(flag&&ans[i]==x[geshu].a )
{
x[geshu].ans1++;
}
}
geshu++;
}
bool mm2(node1 v1,node1 v2)
{
return v1.num<v2.num ;
}
void gaojing(int z)
{
for(int i=1;i<=3000;i++)
{
ans[i]*=z;
}
for(int i=1;i<=3000;i++)
{
ans[i+1]+=ans[i]/10;
ans[i]%=10;
}
}
int main()
{
//freopen("1.in","r",stdin);
//freopen("1.out","w",stdout);
scanf("%d",&t);
for(int i=1;i<=t;i++)
{
scanf("%d%d",&x[i].n,&x[i].a);
//printf("%d",x[i].n );
x[i].num =i;
}
sort(x+1,x+1+t,mm1);
geshu=1;
ans[1]=1;
for(int i=1;i<=x[t].n+5;i++)
{
gaojing(i);
if(i==x[geshu].n)
{
//printf("#");
sear(i);
}
}
sort(x+1,x+t+1,mm2);
/*bool flag=0;
for(int i=3*t;i>0;i--)
{
if(ans[i])flag=1;
if(flag)printf("%d",ans[i]);
}
printf("\n");*/
for(int i=1;i<=t;i++)
{
printf("%d\n",x[i].ans1);
}
return 0;
}
请问大佬,为何90分?