一.

1.F.Future Vision

思路:注意用-1初始化step数组;

#include<iostream>
#include<cstring>
#include<queue>using namespace std;struct g{int x,y,step;
};
char s[101][101];
int step[101][101];
bool vis[101][101];
int x,y,n,m,dx[4]={0,0,1,-1},dy[4]={1,-1,0,0};void bfs(){memset(step,-1,sizeof step);memset(vis,0,sizeof vis);g t, tt;t.x = x, t.y = y, t.step = 0;vis[x][y] = 1;step[x][y] = 0;queue<g> q;q.push(t);int xx,yy;while(!q.empty()){for(int i=0;i<4;i++){xx = q.front().x+dx[i], yy = q.front().y+dy[i];if(vis[xx][yy]||xx<1||xx>n||yy<1||yy>m||s[xx][yy]=='#') continue;tt.x = xx, tt.y = yy, tt.step = q.front().step+1;step[xx][yy] = tt.step;vis[xx][yy] = 1;q.push(tt);}q.pop();}
}int main(){int t; cin>>t;while(t--){cin>>n>>m;for(int i=1;i<=n;++i){for(int j=1;j<=m;j++){cin>>s[i][j];if(s[i][j]=='H') x=i,y=j;}}bfs();int ans=0x3f3f3f3f,k,flag =0; cin>>k;for(int i=0;i<k;i++){int a,b; cin>>a>>b;if(step[a][b]!=-1&&step[a][b]<=i) flag=1,ans=min(i,ans);}if(flag==1) cout<<"YES "<<ans<<'\n';else cout<<"NO"<<'\n';}return 0;
}

2.L.Lexicographic Order

#include<iostream>using namespace std;int main(){int n,m; cin>>n>>m;string s; cin>>s;if(s[n-1]!='a'){s[n-1]-=1;s.insert(n,m-n,'z');cout<<s;}else{s.erase(n-1);cout<<s;}return 0;
}

二.

F.Survivor

思路:注意用乘法;

#include<iostream>
#include<algorithm>
#include<vector>using namespace std;
#define ll long long
int main(){ios::sync_with_stdio(false);cin.tie(nullptr);ll n,m,k,ans=0; cin>>n>>m>>k;ll a[n+1],b[n+1],c[n+1];for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=n;i++){cin>>b[i];b[i]*=m;b[i]-=a[i];if(b[i]<0) ans++;}vector<ll>v;for(int i=1;i<=n;i++){cin>>c[i];if(b[i]>=0){v.push_back(b[i]/c[i]+1);}}sort(v.begin(),v.end());int sum=0;int len = v.size();for(int i=0;i<len;i++){if(sum+v[i]<=k){ sum+=v[i];ans++;}}cout<<ans<<'\n';return 0;
}

2.B.Steel of Heart

思路:模拟;

#include<iostream>
#define ll long long
using namespace std;
ll r[6];
ll l[6];
int main()
{int a,b,c;cin>>a>>b>>c;int fl=0;while(c--){int m,n;scanf("%d:%d",&m,&n);int o;cin>>o;if(o==1){a+=800;fl=1;}else if(o==2){a+=b;}else if(o==3){int h;cin>>h;if(fl==1){if((m-r[h])*60+(n-l[h])>=0){r[h]=m;l[h]=n+30;a+=(125+0.06*a)*0.1;}}}}cout<<a;return 0;
}

三.

1.E.Eating Queries

思路:从第一个吃,计算前缀和,用二分求每次的糖果数

#include<iostream>
#include<algorithm>
#include<vector>using namespace std;int t,n,m;
int g[205][205];int main()
{cin >>t;while(t--){cin >> n >> m;int r = 0;vector <int> v(n);for(int & i : v){cin >> i;r += i;} sort(v.rbegin(),v.rend());    //从大到小for(int i = 1 ; i < n ; i++) v[i] += v[i - 1];while(m--){int x;cin >> x;if(x > r) cout << -1 << endl;else{int pos = lower_bound(v.begin(),v.end(),x) - v.begin();cout << pos + 1 << endl;}}}return 0;
}

2.F.Longest Strike

思路:把出现次数大于等于K的数找出,然后排序后看数值的连续长度

#include<iostream>
#include<vector>
#include<map>using namespace std;
int t,n,k;int main(){cin >>t;while(t--){cin >> n >> k;vector <int> v;map <int,int> mp;for(int i = 1 ; i <= n ; i++){int x ;cin >> x;mp[x]++;} for(auto x : mp){if(x.second >= k) v.push_back(x.first);         }if(!v.size()){cout << -1 << endl;continue;}int l = v[0],r = v[0];int i = 0,len = v.size();while(i < len){int j = i + 1;while(j < len && v[j] - v[j - 1] == 1) j++;if(v[j - 1] - v[i] > r - l){l = v[i];r = v[j - 1];}i = j;}cout << l << " " << r <<'\n';}return 0;
}

SMU 2022Winter(div.2)第三,四周补提相关推荐

  1. 5种样式实现div容器中三图摆放实例对比说明

    代码地址如下: http://www.demodashi.com/demo/11593.html 效果演示: demo点查看效果 需求说明: 如下图所示为设计图,希望在图片上传无规则无规律的情况下实现 ...

  2. 实现一个行内三个div等分_一个div,包含三个小的div,平均分布的样式

    从11月份开始,自学前端开发,写静态页面中,经常用到一个大的div下包含三个小的div,平均分布div大小样式,写过多次,也多次忘记,每次都要现找资料,不想之后,在这么麻烦,索性今天自己记录一下,方便 ...

  3. html div 居中心,CSS实现DIV居中的三种方法

    下面给大家分享div居中的实现代码,具体代码如下所示: demo .div1{ width: 100px; height: 100px; border: 1px solid #000000;} .di ...

  4. xHTML+div布局:三个div,两边div宽度固定,中间div宽度自适应

    xHTML+div经常考题:三个div,两边div宽度固定,中间div宽度自适应. 和大家分享一个实现方式: 1.html代码 1 <div class="dyleft"&g ...

  5. 实现DIV居中布局三种途径(转)

    DIV+CSS布局有很多值得学习的地方,这里和大家描述一下关于DIV居中布局的实现方法,主要有三种方法,每种方法都有各自的特点,请看下文详细介绍,相信通过本文描述你对DIV居中布局一定会有深刻的认识. ...

  6. div三行或三列铺满全屏

    文章目录 一.实现要求 二.实现过程 1. 字体水平居中和垂直居中 1.1水平居中: 1.2垂直居中: 2. 行列铺满全屏 2.1 竖排铺满全屏: 2.2 横排铺满全屏: 3. 实现交互 三.实现代码 ...

  7. HTML中的div,section,acticle三个标签的区别

    一开始,我对这三个标签也是比较困惑,总感觉这三个标签用起来差不多.查了资料之后才觉得这三个标签原来各有作用. 1.div元素: 它本身无任何语义,用作布局以及样式化标签,可定义文档中的分区或节,相当于 ...

  8. jquery实现页面加载时删除特定class 的div内前三个字符

    jQuery(document).ready(function(){          jQuery("div.groupheader").each(function(){  $( ...

  9. 五问补盲(三) | 补盲激光雷达,敢不敢直面新的安全威胁?

    作者 | 爱LiDAR的小飞哥 编辑 | 王博 在激光雷达上车的热潮中,各家都在技术参数上进行着"你死我活"的拼杀. 那么,参数代表一切吗?举个例子,测距200米的激光雷达一定比测 ...

最新文章

  1. C#获取进程的CPU使用率
  2. struts2 form标签加上validate=true就出错的解决办法
  3. Oracle中的UPDATE FROM解决方法
  4. c语言第四版课后答案第三章3.4,算法与数据结构C语言版课后习题答案(机械工业出版社)第3,4章 习题参考答案...
  5. php面试题接口方面,php面试题6 - osc_xb4v1nhl的个人空间 - OSCHINA - 中文开源技术交流社区...
  6. ddr3服务器内存条维修,详解服务器中内存故障的优质解决方案
  7. Pycharm中设置py文件头部注释信息
  8. WEB OS + WEB IM(续)
  9. asp.net中实现登陆的时候用SSL
  10. 解决npm下载包慢的方法
  11. python文本聚类dbscan_文本挖掘之文本聚类(DBSCAN)
  12. 静态HTML个人博客主页 简单个人网页设计作业 DW个人网站模板下载 大学生简单个人网页作品代码 个人网页制作 学生个人网页设计作业
  13. POJ 2706 Connect
  14. 车间生产管理系统严格管控生产全过程?7大步骤分享
  15. win10蓝屏提示重新启动_关于网传0x000000F4蓝屏的临时分析解答
  16. 2021年中国人工智能产业及其重点企业分析(阿里巴巴、百度、腾讯、科大讯飞)[图]
  17. 计算机按键音乐文爱,CG/贺敬轩《文爱》[FLAC/MP3-320K]
  18. Don Box博客中文版志愿者翻译已招募
  19. 新浪Blog支持手机Wap浏览了
  20. IP数据包 标识 标志 片偏移

热门文章

  1. Lottie: 让动画实现更简单
  2. java previous_Java BreakIterator previous()用法及代码示例
  3. 百度地图显示坐标读取服务器数据,借助百度地图api解决获取经纬坐标问题
  4. python列表转字典
  5. Android密钥证书学习
  6. 1.android入门不能忽视的问题之出现“ClassNotFoundException: Didn't find class ...Activity on path: DexPathLis”错误
  7. PSINS源码test_SINS_DR解析
  8. 你知道的版心和你不知道的版心
  9. 安卓免ROOT卸载预装应用程序简要流程
  10. python绘图练习——股票分析(二):风险分析与蒙特卡罗模拟