训练总结8.1
来源:互联网 发布:荒潮 知乎 编辑:程序博客网 时间:2024/06/06 07:17
今天一共做了几道题,做的搜索题 有 棋盘问题,农民追牛问题,还有寻找0和1数字的十进制数字表示n的倍数的问题 。
棋盘问题是给出给定的棋盘大小,还有可以摆放棋子的位置,寻找出多少种摆放的方案,这里有个前提是棋子不能摆在同一行或者同一列。棋盘问题、
农民追牛问题,农民追上牛的最少的步数,农民追牛的方式有向前或向后走一步,或者一下到达2*x 这个位置。农民追牛
0和1表示问题,找到一个十进制的数,只有0和1,是n的倍数,这个题主要是发现搜索的方式,从1开始一直 x*10和 x*10+1,一直找到问题的解。0和1
这三道题以前也都是做过的。
还有下午的练习题,
1.旋转方向问题,有四个方向,给出两个方向,再给出旋转的次数,输出是顺时针旋转的,还是逆时针旋转的。cw顺时针,ccw逆时针 。
用1,2,3,4表示方向,在准备把8个临近的a,b两个点都依次写出来时候,也都发现了规律,将临近的点 划分为两大类,分别是a>b和a<b两类;;还有顺时针逆时针两个都可以的不成立的,发现只要是两个方向不是相邻,肯定是endefinde,所以该开始的限制条件写了两个(方向对角,旋转次数是2的倍数) 只是没有想到限制条件只有旋转次数是2的倍数。
2.守卫问题,看看守卫够不够用。给出一段字母序列,找出每个字母的长度,(记下 这个 字母序列收尾),然后找出整体序列每个点 的每个字母的公共 的个数。
感觉这个题最主要的是找思路,发现自己的思维有点局限,发现思路后代码很好实现。
重点的看看 下午的练习:
旋转方向问题:
Examples
input
^ >
1
output
cw
input
< ^
3
output
ccw
input
^ v
6
output
undefined
Code:
#if 0#include<bits/stdc++.h>using namespace std;int main(){char c,cr;int a,b,k;cin>>c>>cr>>k;if(c=='^')a=1;else if(c=='>')a=2;elseif(c=='v')a=3;elseif(c=='<')a=4; if(cr=='^')b=1;else if(cr=='>')b=2;elseif(cr=='v')b=3;elseif(cr=='<')b=4; if(k%2==0) cout<<"undefined"<<endl; else if((a==1&&b==2)||(a==2&&b==3)||(a==3&&b==4)||(a==4&&b==1)){if(k%4==1)cout<<"cw"<<endl;elseif(k%4==3)cout<<"ccw"<<endl; } else if((a==2&&b==1)||(a==3&&b==2)||(a==4&&b==3)||(a==1&&b==4)) { if(k%4==1) cout<<"ccw"<<endl; else if(k%4==3)cout<<"cw"<<endl;}}#endif
5 1AABBB
NO
5 1ABABB
YES
#if 0#include<bits/stdc++.h>using namespace std;int ans;int main(){int t[30][2],n,gar,num=0,max=0;char c[1000006] ; cin>>n>>gar;for(int i=0; i<n; i++)cin>>c[i];while(num!=n) {int k1,k2;char cc; for(int i=0; i<n; i++){if(c[i]!='0'){cc=c[i];k1=i;t[ans++][0]=i;break;}}for(int i=n-1; i>=0; i--){if(c[i]==cc){k2=i;t[ans-1][1]=i;break;}}for(int i=k1; i<=k2; i++){if(c[i]==cc){num++;c[i]='0';}}}for(int i=0; i<n; i++){ int cnt=0;for(int j=0; j<ans; j++){if(t[j][0]<=i && t[j][1]>=i){cnt++;}}if(cnt>max)max=cnt;}if(max>gar)cout<<"YES"<<endl;elsecout<<"NO"<<endl;}#endif
- 训练总结 8.1
- 训练总结8.1
- 训练总结
- 训练总结
- 训练总结
- 训练总结
- 训练总结
- 训练总结
- 拓展训练总结
- 专业技能训练总结
- 科研技能训练总结
- 第一轮训练总结
- 【SCOI2012】训练总结
- 拓展训练总结
- 20120810训练赛总结
- 20120811训练赛总结
- 【总结】121014DP训练
- 训练指南---总结
- JAVA内存区域与内存溢出异常(一)
- Python中空格字符串的处理技巧
- Android学习之Padding和Margin的区别
- 习题 2.4(4) 求1+2+3+···+100。
- Android 01 selector状态选择器
- 训练总结8.1
- 循环
- 勤快的love 枫
- win10 java环境变量设置
- HDU 6058 维护最近k个比本身大的数
- python基础 字符串(上)
- (5)二叉树
- 案例:Js验证100以内的数都符合角谷定理
- 谷歌浏览器插件-jsonView插件安装与使用