hihocoder 1290 -- 微软2016校园招聘4月在线笔试-3-Demo Day
2016-04-07 00:11
375 查看
这次的在线笔试
说多了都是泪。。
第一题很快就写出来了,第二题本来也是有想着用trie树来写的,不过不熟、嫌麻烦、毕竟渣、还作死,就直接暴力了,然后报应就是一直timeout。
感觉不服,各种细节优化一下,多次提交还是大写的TLE。活活废了我一个半多小时,试问人生有多少个一个半小时?
结果是第三题也没时间写完整提交了(敢多给我五分钟?),测试结束后重新在hihocoder提交了一下,直接过的时候不知是高兴还是淡淡的哀伤。。
又对自己的渣有了新的认识
还是说一下第三题吧,明显的dp。
dp[i][j][0]表示到达第i行第j列的gird时最小改变的数目(此时状态向右),dp[i][j][1]表示到达第i行第j列的gird时最小改变的数目(此时状态向下)
不贴题目了,题目链接:http://hihocoder.com/problemset/problem/1290
C++代码:
说多了都是泪。。
第一题很快就写出来了,第二题本来也是有想着用trie树来写的,不过不熟、嫌麻烦、毕竟渣、还作死,就直接暴力了,然后报应就是一直timeout。
感觉不服,各种细节优化一下,多次提交还是大写的TLE。活活废了我一个半多小时,试问人生有多少个一个半小时?
结果是第三题也没时间写完整提交了(敢多给我五分钟?),测试结束后重新在hihocoder提交了一下,直接过的时候不知是高兴还是淡淡的哀伤。。
又对自己的渣有了新的认识
还是说一下第三题吧,明显的dp。
dp[i][j][0]表示到达第i行第j列的gird时最小改变的数目(此时状态向右),dp[i][j][1]表示到达第i行第j列的gird时最小改变的数目(此时状态向下)
不贴题目了,题目链接:http://hihocoder.com/problemset/problem/1290
C++代码:
#include<iostream> #include<limits.h> using namespace std; #define MAXN 103 #define MAXM 103 int dp[MAXN][MAXM][2]; char cha[MAXN][MAXM]; int n,m; int ans; int main(){ cin>>n>>m; getchar(); for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++) cha[i][j]=getchar(); cha[i][m+1]='b'; getchar(); } for(int i=1;i<=m;i++) cha[n+1][i]='b'; dp[1][1][0]=(cha[1][1]=='.'?0:1); dp[1][1][1]=dp[1][1][0]+(cha[1][2]=='.'?1:0); for(int i=2;i<=m;i++){ dp[1][i][0]=dp[1][i-1][0]+(cha[1][i]=='.'?0:1); dp[1][i][1]=INT_MAX; } for(int i=2;i<=n;i++){ dp[i][1][1]=dp[i-1][1][1]+(cha[i][1]=='.'?0:1); dp[i][1][0]=INT_MAX; } for(int i=2;i<=n;i++){ for(int j=2;j<=m;j++){ dp[i][j][0]=min(dp[i][j-1][0],dp[i][j-1][1]+(cha[i+1][j-1]=='b'?0:1)); dp[i][j][1]=min(dp[i-1][j][1],dp[i-1][j][0]+(cha[i-1][j+1]=='b'?0:1)); if(cha[i][j]=='b'){ dp[i][j][0]++; dp[i][j][1]++; } } } ans=dp [m][0]>dp [m][1]?dp [m][1]:dp [m][0]; cout<<ans<<endl; }
相关文章推荐
- win10家庭版 遇到的问题
- python String
- 【转】关于几种访问GameObject方式的效率对比
- 多态和重载的区别
- avalon2学习教程02之vm
- 布局概述之线性布局--LinearLayout
- Android Studio中报错 You need to use a Theme.AppCompat theme (or descendant) with this activity
- 布局概述之相对布局RelativeLayout
- Check复选框的监听实现
- 杭电ACM题1006
- matlab里不同颜色标记不同线点
- springmvc常用注解
- Odd Even Linked List
- 多选一机制的实现(RadioButton的实现)
- 算法训练 幂方分解
- sql使用truncate和delete清空table的区别(总结)
- 第66课:SparkSQL下Parquet中PushDown的实现学习笔记
- BZOJ2525: [Poi2011]Dynamite
- 实现自动匹配的输入文本
- Z字形扫描