q.pop();
}
}
else
{
intx;
cin>>x;
q.push(x);
}
}
return0;
}
7.护林员盖房子
在一片保护林中,护林员想要盖一座房子来居住,但他不能砍伐任何树木。
现在请你帮他计算:
保护林中所能用来盖房子的矩形空地的最大面积。
#include
#include
#include
#include
#include
#include
#include
#include
#definelllonglong
usingnamespacestd;
intn,m;
intans;
intv[25][25];
boolcheck(inta,intb,intc,intd)
{
for(inti=a;i<=c;i++)
for(intj=b;j<=d;j++)
if(v[i][j])return0;
return1;
}
intmain()
{
cin>>n>>m;
for(inti=1;i<=n;i++)
for(intj=1;j<=m;j++)
cin>>v[i][j];
for(inti=1;i<=n;i++)
for(intj=1;j<=m;j++)
for(intk=i;k<=n;k++)
for(intl=j;l<=m;l++)
if(check(i,j,k,l))
ans=max(ans,(k-i+1)*(l-j+1));
cout<return0;
}
8.汽车限行
为了缓解交通压力、减少空气污染,B市市政府决定在工作日(周一至周五)对机动车进行限行,每辆机动车每周将有一个工作日不能出行,但周末不限行。
假设该政策从2000年1月1日起开始执行。
限行安排为:
尾号为1和6:
周一限行
尾号为2和7:
周二限行
尾号为3和8:
周三限行
尾号为4和9:
周四限行
尾号为5、0和字母:
周五限行
已知2000年1月1日为周六,现在给出一些日期和车牌号,求问该机动车在该天是否限行。
#include
#include
#include
#include
#include
#include
#include
#definelllonglong
usingnamespacestd;
intT;
inty,m,d;
intmm[12]={31,28,31,30,31,30,31,31,30,31,30,31};
intmain()
{
cin>>T;
while(T--)
{
charch;
cin>>y>>ch>>m>>ch>>d;
strings;
cin>>s;
intday,tot=0;
if(s[5]>'9'||s[5]<'0')day=5;
elseday=(s[5]-'0')%5;
if(day==0)day=5;
for(inti=2000;iif((i%4==0&&i%100!
=0)||i%400==0)
tot+=366;
elsetot+=365;
for(inti=1;iif(((y%4==0&&y%100!
=0)||y%400==0)&&i==2)
tot+=29;
else
tot+=mm[i-1];
tot+=(d-1);
if((tot+6-1)%7+1==day)
puts("yes");
else
puts("no");
}
return0;
}
9.人工智能
人工智能一直是计算机学所追求的一个很高的境界,全世界的计算机学家们至今仍在不断努力力求达到这个境界。
这道题也跟“人工智能”有关。
学过初中物理的同学都应该知道物理学中的这个公式P(功率)=U(电压)*I(电流)。
如果给定其中的任意两个值,第三个值都是很容易求的,这个就是本题的任务。
#include
#include
#include
#include
#include
#include
#include
#include
#definelllonglong
usingnamespacestd;
intT;
strings;
mapmp;
doubleget(intx)
{
doublev=0,t=1;
for(inti=x;iif(s[i]>='0'&&s[i]<='9')
{
if(t==1)
v=v*10+s[i]-'0';
else
{
v=v+(s[i]-'0')*t;
t*=0.1;
}
}
elseif(s[i]=='.')
t=0.1;
elseif(s[i]=='m')
v*=0.001;
elseif(s[i]=='k')
v*=1000;
elseif(s[i]=='M')
v*=1000000;
elsebreak;
returnv;
}
intmain()
{
cin>>T;
charch;
ch=getchar();
for(intt=1;t<=T;t++)
{
printf("Problem#%d\n",t);
getline(cin,s);
mp['I']=mp['U']=mp['P']=-1;
for(inti=0;iif(s[i]=='=')
mp[s[i-1]]=get(i+1);
if(mp['I']==-1)
printf("I=%.2lfA\n",mp['P']/mp['U']);
if(mp['U']==-1)
printf("U=%.2lfV\n",mp['P']/mp['I']);
if(mp['P']==-1)
printf("P=%.2lfW\n",mp['U']*mp['I']);
}
return0;
}