在此处交上你的总结
总结
今天结束了暑假的学习,感觉收获满满(^v^)
老师领着我们从cin,cout到冒泡,选择,一路属实不易(QAQ说实话,这是我最忙的一次暑假)
不过我对编程又有了新知识,所以一切都值得
学习过程中,令我印象最深的,是“就不告诉你”(^v^)
开始时,我滴心情:【^v^这不是上题刚做的吗】
#include
using namespace std;
int main()
{
int n,i;
cin>>n;
while(n)//当n不等于0的时候,进入循环
{
cout<<n%10;//每次把每一位单独拿出来
n/=10;//把每一位单独拿出来后,去掉这一位
}
return 0;
}
交上去时我的心情【AC!AC!】
结果……WA了
还是0分QAQ
于是重新看题……原来要去0
于是又改……
#include
using namespace std;
int main()
{
int n,a,b;
cin>>a>>b;
n=ab;
while(n)//当n不等于0的时候,进入循环
{
cout<<n%10;//每次把每一位单独拿出来
n/=10;//把每一位单独拿出来后,去掉这一位
}
return 0;
}
我想【^v^这次总该AC了吧】
结果……WA 70分
此情此景应该有《凉凉》响起……
额……回到正题,
于是我㕛交……
#include
using namespace std;
int main()
{
int n,a,b;
cin>>a>>b;
n=ab;
while(n)//当n不等于0的时候,进入循环
{
if(n%10!=0)
{
cout<<n%10;//每次把每一位独拿出来
}
n/=10;//把每一位单独拿出来后,去掉这一位
}
return 0;
}
结果WA 40分
我心里冰冰凉,透心凉啊
当我叒交时
#include
using namespace std;
int main()
{
int n,a,b;
cin>>a>>b;
n=ab;
while(n)//当n不等于0的时候,进入循环
{
if(n%10==0)
{
continue;
n/=10;
}
cout<<n%10;//每次把每一位dan独拿出来
n/=10;//把每一位单独拿出来后,去掉这一位
}
return 0;
}
TLE 30分
QAQ我讨厌TLE!!!
最后,在老师的思路指导下,我满(mei)怀(you)希望地提交了新代码!!!
#include
using namespace std;
int main()
{
int n,a,b,flag=0;//标记:第一个不为0的位置
cin>>a>>b;
n=ab;
while(n)//当n不等于0的时候,进入循环
{
if(n%10>0)
{
flag++;
}
if(flag>0)
{
cout<<n%10;
}
n/=10;
}
return 0;
}
终于……(进行曲)我AC了!
还是得感谢老师的帮助<^v^>心灵很开心
最近一段时间学了C++,从啥也不会到可以敲几个代码。还是挺感慨的,(前几节课有事没听,后面一段时间没听明白什么,所以那一段时间影响深的题比较多)但问题就是,我一般不会很快上传代码,一般是自测对了再提交,所以一些题目也没保存下错误的代码。
印象比较深的题是土仙花数。那节课前面的东西当时我了解得很少,for循环分支语句都不知道,于是当时就先参考前面两题写了一下。
#include
#include
#include
#include
#include
using namespace std;
int main(){
int n,k;
cin>>n>>k;
int a;
a=n;
while(n){
n%10;
n=n/10;
}
cout<<a-k;
return 0;
}
结果是WA。
后来就卡那里了,哎,到底怎么写?直到老师来讲题目了。
最终豁然开朗(同时也学会了for循环和分支语句)
#include
#include
#include
#include
#include
using namespace std;
int main(){
int n,k,cnt;
cin>>n>>k;
for(int i=1;i<=n;i++){
int s=i,sum=1;
while(s){
sum*=s%10;
s/=10;
}
if(abs(sum-i)<=k)cnt++;
}
cout<<cnt;
return 0;
}
最终还是整明白了。我对这些比较感兴趣,所以比较努力的去学这门语言,当时白天上完课下午继续补前面的知识。暑假知识还是挺多的,从一开始的cin,cout,hello world;到后面的char、string、2维数组。可闲来没事时上网查查,发现这只是C++的一点皮毛 希望可以考上秋天的课,继续深挖C++。
在暑期训练中,让我印象最深的是数列求值II,
题目是这样的:
10. 多项式求值Ⅱ
题目ID:3551100分
最新提交:
Accepted
100 分
历史最高:
Accepted
100 分
时间限制: 200ms
空间限制: 32768kB
题目描述
输入一个整数𝑛n,计算 1+1/(1−3)+1/(1−3+5)+…+1/(1−3+5−…+2𝑛−1)1+1/(1−3)+1/(1−3+5)+…+1/(1−3+5−…+2n−1) 的值。
输入格式
输入一个整数𝑛n。
输出格式
输出一个小数,保留三位小数。
样例
Input 1
1
Output 1
1.000
当时,我真怀疑编译器有问题,无论我怎么改,不是打inf就是一堆乱码,改了好久,还是不对,虽然只是基础段的循环结构,但也快然我奔溃了,前面有遇到过类似的题,我轻松AC,这是我第一次的代码:
#include
#include
#include
#include
using namespace std;
int main(){
int a;
double b;
b=0;
cin>>a;
for(int c=1;c<=a;c=c+1){
if(c%2==0){
b+=1/(c1.0(-1));
}
else{
b+=1/((c-1)1.0/2(-1)+c);
}
}
cout<<fixed<<setprecision(3)<<b;
return 0;
}
我本以为这只是一道最简单的题目,却让我做了好久,最后是老师讲完才AC。
(其实,我现在还不知道我是怎么错的)
这个暑假我印象最深刻的题是:
今天你AC了吗?
和
传递二维数组。
第1个五彩斑斓:WA变TLE,TLE之后又变WA。来来往往几次后才AC。
第2个一片紫:全都是MLE。
第一个代码:
#include<iostream>
#include<cmath>
#include<cstdio>
#include<iomanip>
using namespace std;
int main(){
char a;
int cnt1=0,cnt2=0,cnt3=0,cnt4=0,sum=0;
while(cin>>a){
if(a=='?')break;
sum++;
if(a=='A')cnt1++;
if(a=='W')cnt2++;
if(a=='C')cnt3++;
}
cout<<fixed<<setprecision(2)<<cnt1*1.0/sum<<endl;
cout<<fixed<<setprecision(2)<<cnt2*1.0/sum<<endl;
cout<<fixed<<setprecision(2)<<cnt3*1.0/sum<<endl;
return 0;
}
第二个代码:
#include
#include
#include
#include
#include
#include
#include
using namespace std;
long int c[10005][10005],b[10005][10005],sum=0,a;
int main(){
cin>>a;
for(int i=1;i<=a;i++){
for(int j=1;j<=a;j++){
cin>>c[i][j];
}
}
for(int i=1;i<=a;i++){
for(int j=1;j<=a;j++){
cin>>b[i][j];
}
}
for(int i=1;i<=a;i++){
for(int j=1;j<=a;j++){
cout<<c[i][j]+b[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
不过,这个暑假也让从一个c++小菜鸟变成了青铜小萌新,让我从一无所知变的了解c++的语法。
总之还是收获巨大的。
期末总结
令我印象最深的题目是凹凸曼打怪兽,这道题目在我一开始做的时候做出了WA,
#include
#include
#include
#include
#include
#include<bits/stdc++.h>
using namespace std;
int main(){
double a[505]={};
int s=0,x,v=0,y;
int i=0;
scanf(“%d”,&x);
while(cin>>a[i])
{
s=s+a[i];
v++;
i++;
}
if(s%x==0)
y=s1.0/x;
else
y=s1.0/x+1;
printf(“%d\n”,y);
for(int i=0;i<=v-1;i++)
{
a[i]={a[i]*1.2};
double k;
k=a[i];
printf(“%.1lf “,k);
}
return 0;
}
我如何测试,这段程序都能运行正确,令我百思不得其解,最终,在老师与我的不断尝试下,终于AC了,
#include<cmath>
#include<iomanip>
#include<climits>
#include<cstdio>
#include<bits/stdc++.h>
using namespace std;
int main(){
double a[505]={};
int s=0,x,v=0,y=1;
int i=0;
scanf("%d",&x);
while(cin>>a[i])//输入所有怪兽的攻击力
{
s=s+a[i];//每次输入后累加
if(s>x)//当总的攻击力大于了奥特曼的攻击的时候需要出手一次
{
s=a[i];//最后一头怪兽应该归到下一次出手的时候
y++;
}
v++;
i++;
}
printf("%d\n",y);
for(int i=0;i<=v-1;i++)
{
a[i]={a[i]*1.2};
double k;
k=a[i];
printf("%.1lf ",k);
}
return 0;
}
在这个暑假中,我来到了信友队开始学习信息学竞赛,在第一堂课对于我们来说,难度堪比登天的输入输出,在我现在看来不过是小菜一碟(那时候完全没有接触过信息学这个东西),到后面学习了分支结构,再到后面学习到了循环结构体,每学一个专题,一开始都会觉得很难,但到后期再来看这些题目,才发觉当时自己怎么那么笨,但到了现阶段也有算法上的难题,但我相信我依旧会如同我当初那样勇往直前的。这个暑假我学习了信息学竞赛后,让我枯燥的暑假生活变得有趣,虽然每天上课很累,但也收获满满
本次暑假编程语法总结:
1,最印象深刻的一题:
回文数:
以下是题目描述:
回文数是向前和向后读取的相同数字。 例如,141 是回文数,而 144 不是。现给定一个整数n,请找出所有不大于 n 的回文数。
正确代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
long long s=0;
int e=i;
while(e!=0){
s=s10+e%10;
e=e/10;
}
if(s==i)cout<<i<<endl;
}
return 0;
}
我的错误原因分析:没有理解去前导零可用的进位相加法,用的标记法导致代码又长又乱尤其是写到后面连自己都看不懂了,在此
因没有提交所以在此不附错误代码,我自己提醒自己进位相加法:ans=ans10+n%10;n/=10,原理就是0*任何数==0。
2,整个暑假的学习心得(学习到的知识、自己的一个感受)
学习到的知识:
语法、基本变量:全局变量与局部变量、stl模板、分支结构:单分支、双分支、多分支、运算符、循环:for、while、do-while、
一维(二维)数组——变量的拓展:访问数组内容通过下标访问,结合循环对数组进行输入输出、字符串、自定义函数。尤其印象
深刻的是二维数组。
学习编程的感受:
刚开始的时候像是在学英语,那些头文件像是他们认识我,我却不认识他们。但是逐渐熟悉之后又像是数学,需要有严密的逻辑与
简单的思路。又后来像是语文,题目的字都认识连起来却又像是外星语言啦哈哈。
最后感谢老师的教诲!
总结
今天结束了暑假的学习,感觉收获满满(^v^)
老师领着我们从cin,cout到冒泡,选择,一路属实不易(QAQ说实话,这是我最忙的一次暑假)
不过我对编程又有了新知识,所以一切都值得
学习过程中,令我印象最深的,是“就不告诉你”(^v^)
开始时,我滴心情:【^v^这不是上题刚做的吗】
#include<iostream>
using namespace std;
int main()
{
int n,i;
cin>>n;
while(n)//当n不等于0的时候,进入循环
{
cout<<n%10;//每次把每一位单独拿出来
n/=10;//把每一位单独拿出来后,去掉这一位
}
return 0;
}
交上去时我的心情【AC!AC!】
结果……WA了
还是0分QAQ
于是重新看题……原来要去0
于是又改……
#include<iostream>
using namespace std;
int main()
{
int n,a,b;
cin>>a>>b;
n=a*b;
while(n)//当n不等于0的时候,进入循环
{
cout<<n%10;//每次把每一位单独拿出来
n/=10;//把每一位单独拿出来后,去掉这一位
}
return 0;
}
我想【^v^这次总该AC了吧】
结果……WA 70分
此情此景应该有《凉凉》响起……
额……回到正题,
于是我㕛交……
#include<iostream>
using namespace std;
int main()
{
int n,a,b;
cin>>a>>b;
n=a*b;
while(n)//当n不等于0的时候,进入循环
{
if(n%10!=0)
{
cout<<n%10;//每次把每一位独拿出来
}
n/=10;//把每一位单独拿出来后,去掉这一位
}
return 0;
}
结果WA 40分
我心里冰冰凉,透心凉啊
当我叒交时
#include<iostream>
using namespace std;
int main()
{
int n,a,b;
cin>>a>>b;
n=a*b;
while(n)//当n不等于0的时候,进入循环
{
if(n%10==0)
{
continue;
n/=10;
}
cout<<n%10;//每次把每一位dan独拿出来
n/=10;//把每一位单独拿出来后,去掉这一位
}
return 0;
}
TLE 30分
QAQ我讨厌TLE!!!
最后,在老师的思路指导下,我满(mei)怀(you)希望地提交了新代码!!!
#include<iostream>
using namespace std;
int main()
{
int n,a,b,flag=0;//标记:第一个不为0的位置
cin>>a>>b;
n=a*b;
while(n)//当n不等于0的时候,进入循环
{
if(n%10>0)
{
flag++;
}
if(flag>0)
{
cout<<n%10;
}
n/=10;
}
return 0;
}
终于……(进行曲)我AC了!
在这个暑假,我学到了许多其他同学学不到的东西。
比如输入输出、函数、许多头文件,等等···,还间接性的学习了许多数学知识。
虽然学习信奥的过程注定不是一帆风顺的,但是有老师和同学陪伴,还有家人的支持,让我觉得这个课,价值太大了。
学习信息技术,一定会有很难跨过去的门槛的。
就好比一只自由的兔子,在草原上被猛兽盯上了。
我觉得,即使这门槛再高,只要努力,就一定能跨过去。
我影响最深刻的题让我那一天都闷闷不乐。
刚开始,我抱着“小菜一碟”的心态,想着:这不就是判断语句吗?
然而,老话说得好“希望越大,失望越大”,第一次上交,WA。
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int a,a1,b,b1,c,c1,d,d1,e,e1,f,f1,g,g1;
cin>>a>>a1>>b>>b1>>c>>c1>>d>>d1>>e>>e1>>f>>f1>>g>>g1;
int a2=a+a1;
int b2=b+b1;
int c2=c+c1;
int d2=d+d1;
int e2=e+e1;
int f2=f+f1;
int g2=g+g1;
if(a2>=8||b2>=8||c2>=8||d2>=8||e2>=8||f2>=8||g2>=8&&max(a2,max(b2,max(c2,max(d2,max(e2,max(f2,g2))))))==a2)cout<<"1";
if(a2>=8||b2>=8||c2>=8||d2>=8||e2>=8||f2>=8||g2>=8&&max(a2,max(b2,max(c2,max(d2,max(e2,max(f2,g2))))))==b2)cout<<"2";
if(a2>=8||b2>=8||c2>=8||d2>=8||e2>=8||f2>=8||g2>=8&&max(a2,max(b2,max(c2,max(d2,max(e2,max(f2,g2))))))==c2)cout<<"3";
if(a2>=8||b2>=8||c2>=8||d2>=8||e2>=8||f2>=8||g2>=8&&max(a2,max(b2,max(c2,max(d2,max(e2,max(f2,g2))))))==d2)cout<<"4";
if(a2>=8||b2>=8||c2>=8||d2>=8||e2>=8||f2>=8||g2>=8&&max(a2,max(b2,max(c2,max(d2,max(e2,max(f2,g2))))))==e2)cout<<"5";
if(a2>=8||b2>=8||c2>=8||d2>=8||e2>=8||f2>=8||g2>=8&&max(a2,max(b2,max(c2,max(d2,max(e2,max(f2,g2))))))==f2)cout<<"6";
if(a2>=8||b2>=8||c2>=8||d2>=8||e2>=8||f2>=8||g2>=8&&max(a2,max(b2,max(c2,max(d2,max(e2,max(f2,g2))))))==g2)cout<<"7";
if(a2<8&&b2<8&&c2<8&&d2<8&&e2<8&&f2<8&&g2<8)cout<<"0";
return 0;
}
毕竟这么大的“肝帝”程序,不WA才怪了。
然后我微调了一下,还是0分。
当时我急的,这么简单的题换谁做不出来都会血压升高吧···awa
最后还是老师讲了我才懂了
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int a,b,c=0,m=0;
for(int i=1;i<=7;i++){
cin>>a>>b;
if(a+b>8&&a+b>m){
m=a+b;
c=i;
}
}
cout<<c;
return 0;
}
看这差距,我直接无语了。
回家后,爸爸有和我复盘了一下,原来如此简单。
此时的我,就像那个兔子,从猛兽的爪子下逃生了。
这个暑假,我十分充实,感觉每天都有事情做。
这个暑假,我也比班上其他人学的更多
在暑假的训练中,让我印象最深的是V型序列,虽然对我来说并不难,但是在做出来的时候,我心里很开心。
题目是这样的:
我的思路是先把n个数排序,再按要求输出。
这个是我想了一刻钟的输出过程。
这是这个暑假我做得最久的一题。
暑假课成结束了,心里又开心又难过;
第1天:什么都不会; Hello OI,运算符,整数除法(求商),求余数,求个位;想了半天都不会,一会CE,一会WA。回家在家里大哭;课后作业更是不会。(应为第一次学,所以不会)
Hello OI: #include 整数除法(求商)#include
using namespace std; using namespace std;
int main(){ int main(){
int a; int a,b; …(后面题目省略)
cin>>a; cin>>a>>b;
cout<<“I LOVE OI.”; cout<<b-a;
return 0; return 0;
} }
第n天:前面的终于会了;可是又迎来了:一维数组,for循环,while循环,二维数组…解出来的题目一会WA,一会CE,一会OLE,一会TLE;
令我印象最深刻的是: 恺撒加密术(写了N次)(错了N次)
#include
using namespace std;
int main(){
string a;
int t;
cin>>a>>t;
t%=26;
for(int i=0;i<=a.length();i++){
if(a[i]>=‘a’&&a[i]<=‘z’){
if(a[i]+t>‘z’)a[i]=a[i]+t-26;
else a[i]+=t;
}
else{
if(a[i]+t>‘Z’)a[i]=a[i]+t-26;
else a[i]+=t;
}
}
cout<<a;
return 0;
}
暑假我印象最深的题目: N以内的质数。
这到题我晚上花了一个多小时才AC。
#include
#include
using namespace std;
int main(){
int n,flag=0;
cin>>n;
for(int i=2;i<=n;i++){
for(int j=2;j<=i-1;j++){
if(i%j==0){
flag=1;break;
}
}
if(flag==0){cout<<i<<" ";
}
flag=0;
}
return 0;
}
这道题我思考了很久(提交了19次才AC!!),从我不会用代码判断质数,到懂思路却不会格式,再到反复尝试但总是运行不起来(CE),
终于运行起来了可结果又不对(WA),好不容易结果对了,时间又超限了(TLE),过了很久才 (AC)–最新提交:Accepted100 分
历史最高:Accepted100 分。这是我暑假花了最多时间的题。
这个暑假,我从连键盘都摸不熟,题目一直CE,c++框架都不会写到会写一些c++简单带码,再到会用代码写一些数学题。我觉的
我学会了很多知识,掌握了很多关于编程的内容,感受到写了很久的代码终于AC时的快乐。
NOIP2015-J-2-扫雷游戏 题目——题解,及分析与总结
这是我印象最深的题目,NOIP2015-J-2-扫雷游戏,这是2015年普及组的第二题,看了之后第一反应就是:wq,完辣。但是其实对于普及组的选手们这道题能被他们秒杀,所以我还是在信奥之路上任重而道远啊。
闲话少叙,言归正传这道题题目描述如下:
题目描述
扫雷游戏是一款十分经典的单机小游戏。在n行m列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有多少个是地雷格。游戏的目标是在不翻出任何地雷格的条件下,找出所有的非地雷格。现在给出n行m列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。注:一个格子的周围格子包括其上、下、左、右、左上、右上、左下、右下八个方向上与之直接相邻的格子。
输入格式
第一行输入两个整数 n, m ,分别表示雷区的行数和列数。接下来n行,每行m个字符,描述了雷区中的地雷分布情况。字符’*’表示相应格子是地雷格,字符’?’表示相应格子是非地雷格。相邻字符之间无分隔符。
输出格式
输出包含n行,每行m个字符,描述整个雷区。用’*’表示地雷格,用周围的地雷个数表示非地雷格。相邻字符之间无分隔符。
这道题需要运用二维数组,接下来循环遍历二维数组再判断“?”上下左右,左上左下,右上右下,共八个方向,是否有代表地雷的“*”,如果有就计数器自增并替换掉“?”,最后输出这个“扫雷”的二维数组就行了。
题目代码如下:
#题解代码在代码区,需要的可以自己看一看
这道题会让我们在访问二维数组的数的时候需要注意到其周围的八个方向上的数,错位方向会一直伴随我们算法段生涯(咳咳,偏题了)。
附录1:
这道题我刚刚提交的时候WA 20分了,我当时就想摆烂了,想着:写了这么久的代码,最后只拿了20分,真的给我写崩了。但当我又经过一番尝试,最终AC此题时,回头望去,才发现自己的抱怨是多么的幼稚。是的,信息学的路上我们会有无数次这样的体验,并且有千千万万次比这还难受的时候,但是信息学就是这样,它是有脾性的,当你平和的,认真的对待它时,他就会认真的对待你。当你带有情绪地对它时,它也会带有情绪的对待你,不长不短20天的学习之后,收获最大的便是平和的对待你的题目(咳咳,又偏题了)。
附录2:
我认为这种题在同学们学习语法,初出茅庐的时候,对同学们的技术考验和思考方式的改进才是大有益处的。这种题用来磨练同学们的心性是最好不过的。
我希望在秋季的时候还能再与信息学续前缘,继续深入学习C++,把自己锻炼成一个“信息学糕手”(●’◡’●)。
块引用#include//输入输出
#include//数学工具箱
#include//保留小数
#include//大小写转变
#include//格式化输入输出
#include//求极限值
#include//字符数组
#include//字符串
#include//算法
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
int cnt=0;
char a[105][105];
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cin>>a[i][j];
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cnt=0;
if(a[i][j]==‘?’)
{
if(a[i+1][j]==‘‘)
{
cnt++;
}
if(a[i][j+1]==’’)
{
cnt++;
}
if(a[i-1][j]==‘‘)
{
cnt++;
}
if(a[i][j-1]==’’)
{
cnt++;
}
if(a[i+1][j+1]==‘‘)
{
cnt++;
}
if(a[i+1][j-1]==’’)
{
cnt++;
}
if(a[i-1][j+1]==‘‘)
{
cnt++;
}
if(a[i-1][j-1]==’’)
{
cnt++;
}
cout<<cnt;
}
else
{
cout<<"*";
}
}
cout<<endl;
}
return 0;
}
块引用
经过一个暑假,c++我也算是会了点,而有道题却让我印象深刻:
凹凸曼打怪兽
“现在有若干只怪兽慕名而来想要找凹凸曼一较高下,但他根本不把他们放在眼里,只想早早结束战斗然后回家追剧。
所以他按顺序可能一招单挑一个,也有可能一招单挑一群,请你帮忙计算一下他最少出手几招就可以结束战斗了。
而怪兽们也因为跟凹凸曼切磋失败后回家复盘经验、潜心修炼武力值在原有基础上长进了20%,请你也顺便计算一下修炼之后的怪兽们的武力值。
(注意,没有单只怪兽的武力值大于凹凸曼,因为凹凸曼是最强的。)
输入格式
输入两行:
第一行一个整数表示凹凸曼的武力值XX。
第二行若干个整数表示怪兽们的武力值a_ia;
输出格式
输出两行:
第一行输出一个整数表示最少出手的招数;
第二行按挑战顺序输出怪兽们修炼后的武力值,用空格隔开,结果保留一位小数”
一开始我觉得不就是打得过就加一次,再用凹凸曼的武力值减怪兽的武力值,打不过就归凹凸曼的原武力值,结果;
int main(){ int n,s=1,b,c=0; double a[1005];//定义数组 cin>>n; b=n; int i=0; while(cin>>a[i]){ if(n>a[i]){ a[i]={a[i]+20.0*a[i]/100}; n=n-a[i]; } else{ a[i]={a[i]+20.0*a[i]/100}; s++; n=b; } c++; i++; } cout<<s<<endl; for(int j=0;j<=c-1;j++){ cout<<fixed<<setprecision(1)<<a[j]<<" "; } return 0; }
直接 Wrong Answer了;
然后就是老师的精讲,我终于。。。
#include<iostream>//C++输入输出
#include<cmath>//数学
#include<cstdio>//c语言输入输出
#include<iomanip>
using namespace std;
int main(){
int n,s=1,b,c=0,x=0;
double a[1005];//定义数组
cin>>n;
b=n;
int i=0;
while(cin>>a[i]){
x=x+a[i];
if(x>n){
x=a[i];
s++;
}
c++;
i++;
}
cout<<s<<endl;
for(int j=0;j<=c-1;j++){
double k=1.2*a[j];
cout<<fixed<<setprecision(1)<<k<<" ";
}
return 0;
}
AC了!!!
总结
今天结束了暑假的学习,感觉收获满满(^v^)
老师领着我们从cin,cout到冒泡,选择,一路属实不易(QAQ说实话,这是我最忙的一次暑假)
不过我对编程又有了新知识,所以一切都值得
学习过程中,令我印象最深的,是“就不告诉你”(^v^)
开始时,我滴心情:【^v^这不是上题刚做的吗】
#include<iostream>
using namespace std;
int main()
{
int n,i;
cin>>n;
while(n)//当n不等于0的时候,进入循环
{
cout<<n%10;//每次把每一位单独拿出来
n/=10;//把每一位单独拿出来后,去掉这一位
}
return 0;
}
交上去时我的心情【AC!AC!】
结果……WA了
还是0分QAQ
心情跌落谷底(怀疑题目)
于是重新看题……原来要去0
于是又改……
#include<iostream>
using namespace std;
int main()
{
int n,a,b;
cin>>a>>b;
n=a*b;
while(n)//当n不等于0的时候,进入循环
{
cout<<n%10;//每次把每一位单独拿出来
n/=10;//把每一位单独拿出来后,去掉这一位
}
return 0;
}
我想【^v^这次总该AC了吧】
结果……WA 70分
此情此景应该有《凉凉》响起……
额……回到正题,
于是我㕛交……
#include<iostream>
using namespace std;
int main()
{
int n,a,b;
cin>>a>>b;
n=a*b;
while(n)//当n不等于0的时候,进入循环
{
if(n%10!=0)
{
cout<<n%10;//每次把每一位独拿出来
}
n/=10;//把每一位单独拿出来后,去掉这一位
}
return 0;
}
结果WA 40分
我心里冰冰凉,透心凉啊
凉到怀疑人生
当我叒交时
#include<iostream>
using namespace std;
int main()
{
int n,a,b;
cin>>a>>b;
n=a*b;
while(n)//当n不等于0的时候,进入循环
{
if(n%10==0)
{
continue;
n/=10;
}
cout<<n%10;//每次把每一位dan独拿出来
n/=10;//把每一位单独拿出来后,去掉这一位
}
return 0;
}
TLE 30分
QAQ我讨厌TLE!!!
最后,在老师的思路指导下,我满(mei)怀(you)希望地提交了新代码!!!
#include<iostream>
using namespace std;
int main()
{
int n,a,b,flag=0;//标记:第一个不为0的位置
cin>>a>>b;
n=a*b;
while(n)//当n不等于0的时候,进入循环
{
if(n%10>0)
{
flag++;
}
if(flag>0)
{
cout<<n%10;
}
n/=10;
}
return 0;
}
终于……(进行曲)我AC了!
暑假上课,做题达旦,大怒,作此篇,缅怀逝去的AC。
语法入门:
这是我第一次上C++的课,学的输入输出,在这个课中我们做的是一道萌新关爱题:Hello OI.
这是一道非常睿智的题目(至少在我看来是这样,应该不会有人不会吧)是最为入门的输出(如果输出不会那所有题是做不成了)。
然后就是输入了,在学输入的过程中我们知道了一个小技巧:求数位!
cin,cout,%,/这就是第一节课。
第二节课学的东西是另一个重点,变量:
在其中我学过的数据类型有:int、long long、short、double、flout、char、string。
bu~~~~~t,学的类型多了,就会遇到这样的一些奇葩问题,举个例子:
具体是哪题忘记了:
题目要求的输出格式是一个3位小数
但是呢…我用的是int…然后叫老师过来看看,但在老师来的路上我排错找到了问题…
这就很尴尬。
算了,不想再说废话了…我还是说点正经的吧。
`#include<iostream>
#include<cmath>
#include<iomanip>
#include<climits>
#include<cstdio>
#include<cstring>
#include<string>
using namespace std;
int main(){
int n;
cin>>n;
if(n==1){
cout<<1;
}
if(n==2){
cout<<"222"<<endl;
cout<<" 1 "<<endl;
cout<<"222";
}
if(n==3){
cout<<"33333"<<endl;
cout<<" 222 "<<endl;
cout<<" 1 "<<endl;
cout<<" 222 "<<endl;
cout<<"33333";
}
if(n==4){
cout<<"4444444"<<endl;
cout<<" 33333 "<<endl;
cout<<" 222 "<<endl;
cout<<" 1 "<<endl;
cout<<" 222 "<<endl;
cout<<" 33333 "<<endl;
cout<<"4444444";
}
if(n==5){
cout<<"555555555"<<endl;
cout<<" 4444444 "<<endl;
cout<<" 33333 "<<endl;
cout<<" 222 "<<endl;
cout<<" 1 "<<endl;
cout<<" 222 "<<endl;
cout<<" 33333 "<<endl;
cout<<" 4444444 "<<endl;
cout<<"555555555";
}
if(n==6){
cout<<"66666666666"<<endl;
cout<<" 555555555 "<<endl;
cout<<" 4444444 "<<endl;
cout<<" 33333 "<<endl;
cout<<" 222 "<<endl;
cout<<" 1 "<<endl;
cout<<" 222 "<<endl;
cout<<" 33333 "<<endl;
cout<<" 4444444 "<<endl;
cout<<" 555555555 "<<endl;
cout<<"66666666666"<<endl;
}
if(n==7){
cout<<"7777777777777"<<endl;
cout<<" 66666666666 "<<endl;
cout<<" 555555555 "<<endl;
cout<<" 4444444 "<<endl;
cout<<" 33333 "<<endl;
cout<<" 222 "<<endl;
cout<<" 1 "<<endl;
cout<<" 222 "<<endl;
cout<<" 33333 "<<endl;
cout<<" 4444444 "<<endl;
cout<<" 555555555 "<<endl;
cout<<" 66666666666 "<<endl;
cout<<"7777777777777"<<endl;
}
if(n==8){
cout<<"888888888888888"<<endl;
cout<<" 7777777777777 "<<endl;
cout<<" 66666666666 "<<endl;
cout<<" 555555555 "<<endl;
cout<<" 4444444 "<<endl;
cout<<" 33333 "<<endl;
cout<<" 222 "<<endl;
cout<<" 1 "<<endl;
cout<<" 222 "<<endl;
cout<<" 33333 "<<endl;
cout<<" 4444444 "<<endl;
cout<<" 555555555 "<<endl;
cout<<" 66666666666 "<<endl;
cout<<" 7777777777777 "<<endl;
cout<<"888888888888888"<<endl;
}
if(n==9){
cout<<"99999999999999999"<<endl;
cout<<" 888888888888888 "<<endl;
cout<<" 7777777777777 "<<endl;
cout<<" 66666666666 "<<endl;
cout<<" 555555555 "<<endl;
cout<<" 4444444 "<<endl;
cout<<" 33333 "<<endl;
cout<<" 222 "<<endl;
cout<<" 1 "<<endl;
cout<<" 222 "<<endl;
cout<<" 33333 "<<endl;
cout<<" 4444444 "<<endl;
cout<<" 555555555 "<<endl;
cout<<" 66666666666 "<<endl;
cout<<" 7777777777777 "<<endl;
cout<<" 888888888888888 "<<endl;
cout<<"99999999999999999"<<endl;
}
return 0;
}
`
对,这就是一个看着就知道非常费肝的代码,我当时做半天竟然…有了一个CE,MLE,OLE,WA,RE一时间气急败坏,就手打出了这个离谱代码…(题目名称:数字漏斗)
后来学了函数(我个人认为,这个函数已经是语法进阶中比较简单的了…就是不知道你们咋想的,但是…仅限简单运用那一篇的内容!!!!!!)
这个指针真的是要给我学吐了,老师负责在上面讲,我负责在下面一脸懵。然后…老师说了一句…说了一句…我觉得很简单…听到这话我的心中仿佛有一万只草泥马奔腾而过。
然后整完这些以后老师又给我们提前上了一节算法中的排序中的冒泡和选择,个人认为…上课挺好玩,但做题吧…(100个‘.’,意思自行体会)
(强颜欢笑,仿佛被人掐着脖子一样)总的来说,这个暑假是很充实很快乐的,我学习了C++这门语言,也是非常开心好吧。
大家好,我是人
大家好,这是我人生中的第一个论坛上的公开作品。
我来到信友队学习C++已经一个月,在这一个月里,我成功的完成了我的第一个百行代码
令我印象最深的一道题目是
NOIP2014-J-3-螺旋矩阵
虽然我对自己的代码行数要求很高,只有一句的循环绝不写两行,
#include<iostream>
#include<cstring>
using namespace std;
int arr[2005][2005];
int main(){
int n,x,y,p=1,q=1;
bool w=0;//标记
cin>>n>>x>>y;
memset(arr,-1,sizeof(arr));
for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)arr[i][j]=0;
for(int i=1;i<=n*n;i++){
arr[p][q]=i;
if(w==0){
if(arr[p][q+1]==0)q++;
else if(arr[p+1][q]==0)p++;
else if(arr[p][q-1]==0)q--;
else{
p--;
w=1;
}
}
else{
if(arr[p-1][q]==0)p--;
else if(arr[p+1][q]==0){
p++;
w=0;
}
else if(arr[p][q-1]==0){
q--;
w=0;
}
else{
q++;
w=0;
}
}
}
cout<<arr[x][y];
return 0;
}
刚开始连变量的作用都不清楚
本来想直接套公式,但是这根本没公式可套啊啊啊
没办法,只好赋值
结果还是没AC,甚至因此发明了《蛇形矩阵》
最后才发现w==0写成了w=0啊啊啊
最后也是成功地Accepted了
我还会
- cnt累加
- arr写成a
- 条件判断不打括号写一行
- arr写成a
秀秀我的AC率
###回复###
在谢老师、侯老师的带领下,我已集训一个月,
已学完了所有语法知识,也学了一点冒泡排序与选择排序。
在我的第一个帖子中(询问哥德巴赫猜想),我最终知道了那是没有归0的问题。
让我印象最深的还是区间反转这道题,提交了13次都是错的,8次RE,3次WA,2次CE,错了再改,改了再错,改改错错无穷尽也。正确代码如下:
#include<iostream>
#include<iomanip>
#include<cmath>
#include<cstdio>
#include<climits>
using namespace std;
int main(){
int n,m,l,r;
cin>>n;
int arr[1005];
for(int i=0;i<=n-1;i++){
cin>>arr[i];
}
cin>>m;
while(m--){
cin>>l>>r;
for(int t=l,w=r;t<=w;t++,w--){
swap(arr[t-1],arr[w-1]);
}
}
for(int y=0;y<=n-1;y++)cout<<arr[y]<<" ";
return 0;
}
最终我终于发现是一个下标的问题,“swap(arr[t-1],arr[w-1]); ”写成了“swap(arr[t],arr[w]); ”,没有考虑到
下标为0的情况,再次提交后成功AC.
此外,我觉得最难的知识模块还得属循环,虽然它看起来不难,但仔细一想,发现其变式奇多,想全部掌握还是很难的。
在这个暑假学习的知识一言难尽,我学习了一个父母都不会的语言,我不再仅仅是“bilingual”了。这门语言一开始竟然是输入输出,并不像英语·中文·壮语那样需要学字体·发音;有一次请假,那天却正是要讲新课——一维数组,晚上回去补课次日又忘了,直到学二维数组时还是对它有点生疏,以为自己没救了,但后来结合练习和同学的帮助,还是挺过来了。
期间我难以忘怀的是“画展”这道题:
题目描述
学校举行郊游,这次的地址是画家的画展。小欣同学善于观察,她发现同一个画家的画都有相似点。但是直接比较是比较麻烦的,她想了一个办法,把画放在一个二维数组中(只有0和1,其中0代表黑色,1代表白色),比较二维数组中的数据就可以了。现在有两幅画,求它们的相似度。
说明:若两幅画在同位置上的像素值一样,则称它们在该位置具有相同的像素点。比如一个画和另一个画在(2,3)位置上都是 0,或者都是 1,则它们在(2,3)处具有相同的像素点。两幅图像的相似度定义为相同像素点数占总像素点数的百分比。
输入格式
第一行包含两个整数 mm 和 nn ,表示画的行数和列数,中间用单个空格隔开。
之后的 mm 行,每行 nn 个整数 0 或 1,表示第一幅画上各像素点的颜色。相邻两个数之间用单个空格隔开。
再之后的 mm 行,每行 nn 个整数 0 或 1,表示第二幅画上各像素点的颜色。相邻两个数之间用单个空格隔开。
输出格式
一个实数,表示相似度(以百分比的形式给出),精确到小数点后两位。
样例
Input 1
3 3
1 0 1
0 0 1
1 1 0
1 1 0
0 0 1
0 0 1
Output 1
44.44
样例解释
该测试样例中,第一幅图像和第二幅图像有4个像素点是相同的,总共有9个像素点,所以相似度为4/9=0.444444444,精确到小数点后两位即为44.44%。
数据范围
1≤m≤100,1≤n≤1001≤m ≤100,1≤n ≤100。
当时是我忽略了我把两幅图拼在一起的事实,只把int设定为了长105·宽105,并且没有转换成题目的百分比,RE了:
#include<iostream>
#include<iomanip>
#include<cmath>
#include<cstdio>
#include<climits>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
int a[105][105];
int main(){
int m,n,b=0,c=0;
cin>>m>>n;
c=m*n;
for(int i=0;i<m*2;i++){
for(int j=0;j<n;j++){
cin>>a[i][j];
if(i>=m){
if(a[i][j]==a[i-m][j]){
b++;
}
}
}
}
cout<<fixed<<setprecision(2)<<b*1.0/c;
return 0;
}
第二次也错在了同一处:
`#include<iostream>
#include<iomanip>
#include<cmath>
#include<cstdio>
#include<climits>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
int a[105][105];
int main(){
int m,n,b=0,c=0;
cin>>m>>n;
c=m*n;
for(int i=0;i<m*2;i++){
for(int j=0;j<n;j++){
cin>>a[i][j];
if(i>=m){
if(a[i][j]==a[i-m][j]){
b++;
}
}
}
}
cout<<fixed<<setprecision(2)<<(b*1.0/c)*100;
return 0;
}
最后在老师的帮助下解出来了:
#include<iostream>
#include<iomanip>
#include<cmath>
#include<cstdio>
#include<climits>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
long long a[205][205];
int main(){
int m,n,b=0,c=0;
cin>>m>>n;
c=m*n;
for(int i=0;i<m*2;i++){
for(int j=0;j<n;j++){
cin>>a[i][j];
if(i>=m){
if(a[i][j]==a[i-m][j]){
b++;
}
}
}
}
cout<<fixed<<setprecision(2)<<(b*1.0/c)*100;
return 0;
}
经过这次做题,我不仅学会静下心,我还打算好好学这门语言,帮助做大数据题目的人做出一个对比器,输入样例输出和自己的输出,让电脑代替肉眼检测区别&显示,(现在我还不够格);并且be a coder成为家庭和族人的骄傲。
武汉经开外国语学校暑假期末总结1
呃。。。怎么写呢?在这最忙的暑假上了三周的入门C++,在结束的这一天也是很有成就感的,
我学会了输入输出cin,cout,scanf,printf,分支条件语句if,循环嵌套while,for,数组运用a,函数方法int,void等知识。
让我印象最深刻的莫过于打印各位数字之和这道题:
题目描述
给定一个整数 N,求 N 的所有数字之和。注意N的范围
#include<iostream>
#include<cstdio>
#include<cmath>
#include<iomanip>
#include<climits>
using namespace std;
int main(){
int n,sum=0;
cin>>n;
while(n){//n不为0时,执行循环。n为0时,不执行循环
sum+=n%10;//每次把每一位单独拿出来
n/=10;//拿完后去掉这一位
}
cout<<sum;
return 0;
}
当我兴冲冲地提交上去时,却发现只有30分,当初心情跌入谷底,十分疑惑,自己测了n遍的代码怎么不对,
此时真相只有一个,那就是位数不够导致的。
所以我就把int类型改成long long类型
#include<iostream>
#include<cstdio>
#include<cmath>
#include<iomanip>
#include<climits>
using namespace std;
int main(){
long long n,sum=0;
cin>>n;
while(n){//n不为0时,执行循环。n为0时,不执行循环
sum+=n%10;//每次把每一位单独拿出来
n/=10;//拿完后去掉这一位
}
cout<<sum;
return 0;
}
却发现还是WA30分……
我就纳闷了,这么简单的题怎么一直解不出来?于是我就解锁一个样例:3506557823337564420890981159538287907707759671550981994219204741343795365236286844237214375
这long long 也没有这么多啊,我才想到只有用string才能解。
省略了n次CE,WA。。。。。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<iomanip>
#include<climits>
#include<cstring>
using namespace std;
int main(){
char a[210];
int i,s=0;
cin>>a;
for(i=0;i<strlen(a);i++)
s=s+(a[i]-48);
cout<<s;
return 0;
}
总算是AC好了吧