高考结束一个月了,报考 出分 强基 该忙完的都忙完了,该玩的也都玩了,现在决定开始往回捡
C
+
+
C++
C++了。两年多没碰,不知道自己现在是什么水平,就当自己啥都不会了,从最简单的题开始做。
偶然看到洛谷题单里有从入门题开始的题单,就当康复训练了,如果有假期想学编程的兄弟们也可以和我一起做。
P1421 小玉买文具
传送门
乐,什么水题,但是我第一次
W
A
WA
WA了,因为忘输入了,笑死
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
cout<<(a*10+b)/19<<endl;
}
P1909 [NOIP2016 普及组] 买铅笔
传送门
这题是不应该算是我第一次比赛做的题哈哈哈,当时好像想了好久,最后文件输入输出打错了,喜提爆零哈哈哈
#include<bits/stdc++.h>
using namespace std;
int n,a,b,m,mx=1000000000;
int main(){
cin>>n;
for(int i=1;i<=3;i++){
cin>>a>>b;
if(n%a)m=n/a+1;
else m=n/a;
mx=min(m*b,mx);
}
cout<<mx<<endl;
}
P1089 [NOIP2004 提高组] 津津的储蓄计划
传送门
题干是真长,下次建议这种水题直接把代码放到题目描述里
#include<bits/stdc++.h>
using namespace std;
int a,now,sav;
int main(){
for(int i=1;i<=12;i++){
cin>>a;
(now+=300)-=a;
if(now<0){printf("-%d\n",i);return 0;}
sav+=now/100*100;
now%=100;
}
printf("%d\n",now+sav*6/5);
}
P1085 [NOIP2004 普及组] 不高兴的津津
传送门
做的时候考虑了两分钟 到底等于
8
8
8算开心还是不开心 后来觉得津津应该不能这么容易不开心,就算他等于
8
8
8时候开心了
#include<bits/stdc++.h>
using namespace std;
int a,b,n,m;
int main(){
for(int i=1;i<=7;i++){
cin>>a>>b;
if(a+b>m)m=a+b,n=i;
}
if(m>8)cout<<n<<endl;
else puts("0");
}
P1035 [NOIP2002 普及组] 级数求和
传送门
我记得这是初一科技节程序设计竞赛的题哈哈哈,那次因为首
A
A
A的题没有第一的多 遗憾榜二哈哈哈
(
(
(不过初二长经验了手速把前五个首
A
A
A都拿了喜提榜一哈哈哈
#include<bits/stdc++.h>
using namespace std;
double s;
int main(){
int n,i;cin>>n;
for(i=1;s<=n;i++)s+=1.0/i;
cout<<i<<endl;
}
P1980 [NOIP2013 普及组] 计数问题
传送门
正常做法
#include<bits/stdc++.h>
using namespace std;
int a,b,c,n,x,sum;
int main(){
cin>>n>>x;
for(int i=1;i<=n;i++){
int now=i;
while(now){
if(now%10==x)sum++;
now/=10;
}
}
cout<<sum<<endl;
}
做完瞅一眼题解,发现有个 l g n lg_n lgn的做法挺有意思的,就当练练思维自己打一遍
#include<bits/stdc++.h>
using namespace std;
int le,ri,bas=1,n,x,now,sum;
int main(){
cin>>n>>x;
while(bas<=n){
le=n/(bas*10),ri=n%bas,now=n/bas%10;
if(x){
if(x>now)sum+=le*bas;
else if(x<now)sum+=(le+1)*bas;
else sum+=le*bas+ri+1;
}
else{
if(now)sum+=le*bas;
else sum+=(le-1)*bas+ri+1;
}
bas*=10;
}
cout<<sum<<endl;
}
P1014 [NOIP1999 普及组] Cantor 表
传送门
终于有一道黄题了,正好复习一下位运算,用位运算判断奇偶
#include<bits/stdc++.h>
using namespace std;
int n,i,now;
int main(){
cin>>n;
for(i=1;now+i<n;i++)now+=i;
if(i&1)printf("%d/%d\n",i+1-n+now,n-now);
else printf("%d/%d\n",n-now,i+1-n+now);
}
P1307 [NOIP2011 普及组] 数字反转
传送门
第一次做这个题是初中时亮老师给我们出了四个题,就做对这一个,当时我刚去高中部上课,亮老师还嘲讽我去那啥也没学会哈哈哈哈哈哈,还问我是不是家里电脑坏了才想起回初中部上节课,太逗了
#include<bits/stdc++.h>
using namespace std;
char str[20];
int l,flag;
int main(){
gets(str);
l=strlen(str);
if(str[0]=='-')putchar('-');
for(int i=l-1;~i;i--){
if(!flag&&str[i]=='0')continue;
if(!flag)flag=true;
if(str[i]!='-')putchar(str[i]);
}
if(l==1&&!flag)putchar(48);
putchar(10);
}
总结:这个博客既算是刚捡回 C + + C++ C++的康复训练,也算是打博客的康复训练,这个 M a r k d o w n Markdown Markdown真的好亲切的感觉,这个假期抽时间好好自学,希望以后上大学可以试着打打 A C M ACM ACM 嘿嘿