杭电acm部分题目及答案答案.docx
《杭电acm部分题目及答案答案.docx》由会员分享,可在线阅读,更多相关《杭电acm部分题目及答案答案.docx(20页珍藏版)》请在冰豆网上搜索。
![杭电acm部分题目及答案答案.docx](https://file1.bdocx.com/fileroot1/2023-2/3/da1d9e20-3395-4f5e-acfb-84b0ad0e2e57/da1d9e20-3395-4f5e-acfb-84b0ad0e2e571.gif)
杭电acm部分题目及答案答案
自己刷的题
这是我在杭电做题的记录,希望我的分享对你有帮助!
!
!
HowtoType***************************************************************16
1001SumProblem
ProblemDescription
Hey,welcometoHDOJ(HangzhouDianziUniversityOnlineJudge).
Inthisproblem,yourtaskistocalculateSUM(n)=1+2+3+...+n.
Input
Theinputwillconsistofaseriesofintegersn,oneintegerperline.
Output
Foreachcase,outputSUM(n)inoneline,followedbyablankline.Youmayassumetheresultwillbeintherangeof32-bitsignedinteger.
SampleInput
1
100
SampleOutput
1
5050
Author
DOOMIII
解答:
#include
main()
{
intn,i,sum;
sum=0;
while((scanf("%d",&n)!
=-1))
{
sum=0;
for(i=0;i<=n;i++)
sum+=i;
printf("%d\n\n",sum);
}
}
1089A+BforInput-OutputPractice(I)
ProblemDescription
YourtaskistoCalculatea+b.
Tooeasy?
!
Ofcourse!
Ispeciallydesignedtheproblemforacmbeginners.
Youmusthavefoundthatsomeproblemshavethesametitleswiththisone,yes,alltheseproblemsweredesignedforthesameaim.
Input
Theinputwillconsistofaseriesofpairsofintegersaandb,separatedbyaspace,onepairofintegersperline.
Output
Foreachpairofinputintegersaandbyoushouldoutputthesumofaandbinoneline,andwithonelineofoutputforeachlineininput.
SampleInput
15
1020
SampleOutput
6
30
Author
lcy
Recommend
JGShining
解答:
#include
main()
{
inta,b;
while(scanf("%d%d",&a,&b)!
=EOF)
printf("%d\n",a+b);
}
1090A+BforInput-OutputPractice(II)
ProblemDescription
YourtaskistoCalculatea+b.
Input
InputcontainsanintegerNinthefirstline,andthenNlinesfollow.Eachlineconsistsofapairofintegersaandb,separatedbyaspace,onepairofintegersperline.
Output
Foreachpairofinputintegersaandbyoushouldoutputthesumofaandbinoneline,andwithonelineofoutputforeachlineininput.
SampleInput
2
15
1020
SampleOutput
6
30
Author
lcy
Recommend
JGShining
解答:
#include
#defineM1000
voidmain()
{
inta,b,n,j[M],i;
//printf("pleaseinputn:
\n");
scanf("%d",&n);
for(i=0;i{
scanf("%d%d",&a,&b);
//printf("%d%d",a,b);
j[i]=a+b;
}
i=0;
while(i{
printf("%d",j[i]);
i++;
printf("\n");
}
}
1091A+BforInput-OutputPractice(III)
ProblemDescription
YourtaskistoCalculatea+b.
Input
Inputcontainsmultipletestcases.Eachtestcasecontainsapairofintegersaandb,onepairofintegersperline.Atestcasecontaining00terminatestheinputandthistestcaseisnottobeprocessed.
Output
Foreachpairofinputintegersaandbyoushouldoutputthesumofaandbinoneline,andwithonelineofoutputforeachlineininput.
SampleInput
15
1020
00
SampleOutput
6
30
Author
lcy
Recommend
JGShining
解答:
#include
main()
{
inta,b;
scanf("%d%d",&a,&b);
while(!
(a==0&&b==0))
{
printf("%d\n",a+b);
scanf("%d%d",&a,&b);
}
}
1092A+BforInput-OutputPractice(IV)
ProblemDescription
YourtaskistoCalculatethesumofsomeintegers.
Input
Inputcontainsmultipletestcases.EachtestcasecontainsaintegerN,andthenNintegersfollowinthesameline.Atestcasestartingwith0terminatestheinputandthistestcaseisnottobeprocessed.
Output
Foreachgroupofinputintegersyoushouldoutputtheirsuminoneline,andwithonelineofoutputforeachlineininput.
SampleInput
41234
512345
0
SampleOutput
10
15
Author
lcy
Recommend
JGShining
解答:
#include
intmain()
{
intn,sum,i,t;
while(scanf("%d",&n)!
=EOF&&n!
=0)
{
sum=0;
for(i=0;i{
scanf("%d",&t);
sum=sum+t;
}
printf("%d\n",sum);
}
}
1093A+BforInput-OutputPractice(V)
ProblemDescription
Yourtaskistocalculatethesumofsomeintegers.
Input
InputcontainsanintegerNinthefirstline,andthenNlinesfollow.EachlinestartswithaintegerM,andthenMintegersfollowinthesameline.
Output
Foreachgroupofinputintegersyoushouldoutputtheirsuminoneline,andwithonelineofoutputforeachlineininput.
SampleInput
2
41234
512345
SampleOutput
10
15
Author
lcy
解答:
#include
main()
{
intn,a,b,i,j,sum;
sum=0;
while(scanf("%d\n",&n)!
=-1)
{
for(i=0;i{
scanf("%d",&b);
for(j=0;j
{
scanf("%d",&a);
sum+=a;
}
printf("%d\n",sum);
sum=0;
}
}
}
1094A+BforInput-OutputPractice(VI)
ProblemDescription
Yourtaskistocalculatethesumofsomeintegers.
Input
Inputcontainsmultipletestcases,andonecaseoneline.EachcasestartswithanintegerN,andthenNintegersfollowinthesameline.
Output
ForeachtestcaseyoushouldoutputthesumofNintegersinoneline,andwithonelineofoutputforeachlineininput.
SampleInput
41234
512345
SampleOutput
10
15
Author
lcy
Recommend
JGShining
解答:
#include
main()
{
intn,a,b,i,j,sum;
sum=0;
while(scanf("%d\n",&n)!
=-1)
{
for(j=0;j{
scanf("%d",&a);
sum+=a;
}
printf("%d\n",sum);
sum=0;
}
}
[CopytoClipboard] [SavetoFile]
1095A+BforInput-OutputPractice(VII)
ProblemDescription
YourtaskistoCalculatea+b.
Input
Theinputwillconsistofaseriesofpairsofintegersaandb,separatedbyaspace,onepairofintegersperline.
Output
Foreachpairofinputintegersaandbyoushouldoutputthesumofaandb,andfollowedbyablankline.
SampleInput
15
1020
SampleOutput
6
30
Author
lcy
Recommend
JGShining
解答:
#include
main()
{
inta,b;
while(scanf("%d%d",&a,&b)!
=EOF)
printf("%d\n\n",a+b);
}
1096A+BforInput-OutputPractice(VIII)
ProblemDescription
Yourtaskistocalculatethesumofsomeintegers.
Input
InputcontainsanintegerNinthefirstline,andthenNlinesfollow.EachlinestartswithaintegerM,andthenMintegersfollowinthesameline.
Output
Foreachgroupofinputintegersyoushouldoutputtheirsuminoneline,andyoumustnotethatthereisablanklinebetweenoutputs.
SampleInput
3
41234
512345
3123
SampleOutput
10
15
6
Author
lcy
Recommend
JGShining
解答:
intmain()
{
inta,b,i,j,l[1000],k;
scanf("%d",&i);
getchar();
for(j=1;j<=i;j++)
l[j]=0;
for(j=1;j<=i;j++)
{
scanf("%d",&a);
getchar();
for(k=1;k<=a;k++)
{
scanf("%d",&b);
getchar();
l[j]+=b;
}
}
for(j=1;j<=i-1;j++)
printf("%d\n\n",l[j]);
printf("%d\n",l[i]);
}
HowtoType
ProblemDescription
Pirateshavefinisheddevelopingthetypingsoftware.HecalledCathytotesthistypingsoftware.Sheisgoodatthinking.Aftertestingforseveraldays,shefindsthatifshetypesastringbysomeways,shewilltypethekeyatleast.Butshehasabadhabitthatifthecapslockison,shemustturnoffit,aftershefinishestyping.Nowshewantstoknowthesmallesttimesoftypingthekeytofinishtypingastring.
Input
Thefirstlineisanintegert(t<=100),whichisthenumberoftestcaseintheinputfile.Foreachtestcase,thereisonlyonestringwhichconsistsoflowercaseletteranduppercaseletter.Thelengthofthestringisatmost100.
Output
Foreachtestcase,youmustoutputthesmallesttimesoftypingthekeytofinishtypingthisstring.
SampleInput
3
Pirates
HDUacm
HDUACM
SampleOutput
8
8
8
#include
#include
#defineMAX200
intarr[MAX][4];
charstr[MAX];
intletter(charch)
{
if(ch>='A'&&ch<='Z')return1;
return0;
}
voidproc()
{
inti;
inttmp,min;
intlen=strlen(str);
for(i=0;i{
if(i==0)
{
if(letter(str[i])){arr[i][1]=2;arr[i][2]=2;}
else{arr[i][0]=1;arr[i][3]=3;}
}
else
{
if(letter(str[i])==letter(str[i-1]))
{
if(arr[i-1][0]){arr[i][0]=arr[i-1][0]+1;arr[i][3]=arr[i-1][0]+3;}
if(arr[i-1][1]){arr[i][1]=arr[i-1][1]+2;arr[i][2]=arr[i-1][1]+2;}
if(arr[i-1][2])
{
if(arr[i][0]>arr[i-1][2]+1||!
arr[i][0])arr[i][0]=arr[i-1][2]+1;
if(arr[i][3]>arr[i-1][2]+3||!
arr[i][3])arr[i][3]=arr[i-1][2]+3;
}
if(arr[i-1][3])
{
if(arr[i][1]>arr[i-1][3]+2||!
arr[i][1])arr[i][1]=arr[i-1][3]+2;
if(arr[i][2]>arr[i-1][3]+2||!
arr[i][2])arr[i][2]=arr[i-1][3]+2;
}
}
else
{
if(arr[i-1][0]){arr[i][1]=arr[i-1][0]+2;arr[i][2]=arr[i-1][0]+2;}
if(arr[i-1][1]){arr[i][0]=arr[i-1][1]+1;arr[i][3]=arr[i-1][1]+3;}
if(arr[i-1][2])
{
if(arr[i][1]>arr[i-1][2]+2||!
arr[i][1])arr[i][1]=arr[i-1][2]+2;
if(arr[i][2]>arr[i-1][2]+2||!
arr[i][2])arr[i][2]=arr[i-1][2]+2;
}
if(arr[i-1][3])
{
if(arr[i][0]>arr[i-1][3]+1||!
arr[i][0])arr[i][0]=arr[i-1][3]+1;
if(arr[i][3]>arr[i-1][3]+3||!
arr[i][3])arr[i][3]=arr[i-1][3]+3;
}
}
}
}
min=3*MAX;
if(letter(str[len-1]))
{
if(arr[len-1][0]){tmp=arr[len-1][0]+1;if(tmpif(arr[len-1][1]){tmp=arr[len-1][1];if(tmpif(arr[len-1][2]){tmp=arr[len-1][2]+1;if(tmpif(arr[len-1][3]){tmp=arr[len-1][3];if(tmp}
else
{
if(arr[len-1][0]){tmp=arr[len-1][0];if(tmpif(arr[len-1][1]){tmp=arr[len-1][1]+1;if(tmpif(arr[len-1][2]){tmp=arr[len-1][2];if(tmpif(arr[len-1][3]){tmp=arr[len-1][3]+1;if(tmp}
printf("%d\n",min);
}
//CapsShift:
0-00;1-01;2-10;3-11
intmain()
{
intnum;
scanf("%d",&num);
while(num--)
{
scanf("%s",str);
memset(arr,0,strlen(str)*4*sizeof(int));
proc();
}
return0;
}