考试分析:
这应该是开始写博客以来考得最好的一次,当然排名并没有那么高,因为第一题神奇地WA了(呵呵(笑脸,但把第一题的分加上我应该是第一,这次的分数也算是我现在的水平发挥得比较好的状态;
参考资料:
无;(一套神奇的无解题报告的题,只能自力更生艰苦创业)
反映问题:
1.字符串,字符及字符数组的读取;
一.LGTB玩扫雷
题意:算矩阵周围某元素个数;
题目分析:
对!就是这道题!就是它挡在我和第一名中间!就是它!注定了我遇上“第一题永远做不对”的噩梦!我讨厌第一题!
好,牢骚发完了orz,刚拿到这道题,被上次的noip2013虐了的我惊异于我居然可以马上动笔......啊不,动键盘,然而老师要求看题十五分钟所以我分析了一下第二题的DP(然而写了一个废弃程序),然后就开始快速搞定这道题,当然,其实并不快,因为我在读字符上卡了,回车实在是折磨人的小妖精,然后cin取消同步后又阵亡了(读不到字符),最后上了scanf("%s"),然后只过了两组;悲愤欲绝之时,老师让我自己回去调,于是一中午都没搞定,差点挥手写对拍(之前不写是因为觉得自己只可能是题意理解错,再写一个也没用),然后老师讲题时干脆把我的程序拿给大家让找错,最后半信半疑地把ios::sync_with_stdio(false)去了,然后全过(手动再见),(你说这个我怎么自己找错)(整个中午都喂doge了);
这里总结一下用取消同步出现过的问题:
1.scanf和cin不能一起用;
2.cin字符没返回值cin数字却有;
3.有的数据对有的数据错(而且好像是linux下才错???
所以得到的结果是:和scanf在一起一辈子(只要记清交程序时改成“%lld”就行了
(或者写:
#ifdef WIN32
#define AUTO "%I64d"
#else
#define AUTO "%lld"
#endif
#include<cstdio> #include<iostream> #include<cmath> #include<cstdlib> #include<cstring> #include<string> #include<algorithm> #include<queue> #include<set> using namespace std; int n,m,zl[8][2]={1,0,-1,0,0,1,0,-1,1,1,1,-1,-1,-1,-1,1}; char ovo[1005][1005]; int main() { freopen("mine.in","r",stdin); freopen("mine.out","w",stdout); cin>>n>>m; //ios::sync_with_stdio(false);//有scanf和cin不能取消同步(建议记清楚,用scanf for(int i=1;i<=n;i++) scanf("%s",&ovo[i]); for(int i=1;i<=n;i++) { for(int j=0;j<=m-1;j++) { if(ovo[i][j]=='.') { int ans=0; for(int k=0;k<=7;k++) { int x=i+zl[k][0];int y=j+zl[k][1]; if(x>=0&&y>=0) if(ovo[x][y]=='*') ans++; } cout<<ans; } else cout<<'*'; } cout<<endl; } return 0; }