- 杜昊阳 的博客
寒假思维训练总结day1
- @ 2025-2-4 17:52:40
错题1 错题:章节一 T001
错因:写完代码后没有检查一遍代码书写,如:include拼错了,cout写太快顺序反了.
正确思路:将n,m边上需装的瓷砖个数相乘.
参考代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m,a,s=0;
cin>>n>>m>>a;
for(int i=1;i<=m;i++){
if(a*i>=m){
s=i;
break;
}
}
for(int i=1;i<=n;i++){
if(a*i>=n){
s*=i;
break;
}
}
cout<<s;
return 0;
}
错题2 错题:章节一 T009
错因:想的太复杂,把自己绕晕了.
正确思路:只需将6种情况分别进行判断即可.
参考代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int y,w,a;
cin>>y>>w;
if(y>w){
a=y;
}else if(w>y){
a=w;
}else{
a=y;
}
a--;
if(a==0){
cout<<1<<'/'<<1;
}else if(a==1){
cout<<5<<'/'<<6;
}else if(a==2){
cout<<2<<'/'<<3;
}else if(a==3){
cout<<1<<'/'<<2;
}else if(a==4){
cout<<1<<'/'<<3;
}else{
cout<<1<<'/'<<6;
}
}
错题3 错题:章节一 T003
错因:没弄清楚顶层逻辑和题目意思(即题目要求最优解).
正确思路:从第二种情况的分支中来判断最优解.
错题4 错题:章节一 T004
错因:思路太复杂,导致代码书写时出现了错误.
正确思路:只需思考生命值之和是否为9(6+3)的倍数且确保单个怪物能撑到每轮AOE伤害时.
参考代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[100001],b[100001],c[100001],t,n;
cin>>t;
for(int i=0;i<t;i++){
cin>>a[i]>>b[i]>>c[i];
}
for(int i=0;i<t;i++){
n=a[i]+b[i]+c[i];
if(n%9==0&&a[i]>=(n/9)&&b[i]>=(n/9)&&c[i]>=(n/9)){
cout<<"YES"<<endl;
}else{
cout<<"NO"<<endl;
}
}
}
错题5 错题:章节一 T007
错因:三模式及个变量关系混淆.
正确思路:换图理清思路,了解三模式之间的关系.
参考代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,p1,p2,p3,t1,t2,l[1441],r[1441],v[1441],s=0;
cin>>n>>p1>>p2>>p3>>t1>>t2;
for(int i=0;i<n;i++){
cin>>l[i]>>r[i];
}
for(int i=0;i<n;i++){
v[i]=r[i]-l[i];
}
for(int i=0;i<n;i++){
s+=v[i]*p1;
if(i!=n-1){
int e=l[i+1]-r[i];
if(e>t1){
if(e>t1+t2){
s+=t1*p1;
s+=t2*p2;
s+=(e-t1-t2)*p3;
}else{
s+=t1*p1;
s+=(e-t1)*p2;
}
}else{
s+=e*p1;
}
}
}
cout<<s;
return 0;
}