1018题:它是输入一个数N,求N!有几位。
1017:在(0,n)之间满足(a^2+b^2 +m)/(ab)是个整数的个数。
1014:判断能不能取遍m的余数。
你把这道题考虑的太简单了~如果数据是10 9 5 8 7 5 6那按照你的程序要开3个~!
但实际上知要2个就OK了~第一个:10 9 5 5 ~~;第二个8 7 6~!
这道题要用DP~!
下面附上我的AC代码~C++写的应该可以看明白的把~!
#include
#include
using namespace std;
int main()
{
int a[1001],m,n,i,j,k,sum;
while(cin>>m)
{
sum=1,j=1;
memset(a,0,sizeof(a));//先将数组全部清0;
cin>>a[0];
for(n=1;n
sort(a,a+j); //对输入的数从小到大排序;
cin>>k;
for(i=0;i
if(k<=a[i]) //找到与当前导弹最接近的那个拦截系统;
{//更新该拦截系统;
a[i]=k;
break;
}
else if(i==j-1)
{//找到最后一个都还没找到能大于该导弹的,那就在开一个拦截系统;
sum++;
a[j]=k;
++j;
}
}
}
cout<
return 0;
}
自己思考一下把~!
应该是女寝室吧,那个十八层