当前位置: 首页 > news >正文

做网站如何适应分辨率/今日新闻网

做网站如何适应分辨率,今日新闻网,飞鱼crm下载,佛山哪里做网站爱丽丝和鲍博喜欢玩一维战舰的游戏。他们在一行有n个方格的纸上玩这个游戏(也就是1n的表格)。 在游戏开始的时候,爱丽丝放k个战舰在这个表格中,并不把具体位置告诉鲍博。每一只战舰的形状是 1a 的长方形(也就是说&…

爱丽丝和鲍博喜欢玩一维战舰的游戏。他们在一行有n个方格的纸上玩这个游戏(也就是1×n的表格)。

在游戏开始的时候,爱丽丝放k个战舰在这个表格中,并不把具体位置告诉鲍博。每一只战舰的形状是 1×a 的长方形(也就是说,战舰会占据a个连续的方格)。这些战舰不能相互重叠,也不能相接触。

然后鲍博会做一系列的点名。当他点到某个格子的时候,爱丽丝会告诉他那个格子是否被某只战舰占据。如果是,就说hit,否则就说miss。

但是这儿有一个问题!爱丽丝喜欢撒谎。他每次都会告诉鲍博miss。

请你帮助鲍博证明爱丽丝撒谎了,请找出哪一步之后爱丽丝肯定撒谎了。

Input

单组测试数据。
第一行有三个整数n,k和a(1≤n,k,a≤2*10^5),表示表格的大小,战舰的数目,还有战舰的大小。输入的n,k,a保证是能够在1×n的表格中放入k只大小为a的战舰,并且他们之间不重叠也不接触。
第二行是一个整数m(1≤m≤n),表示鲍博的点名次数。
第三行有m个不同的整数x1,x2,...,xm,xi是鲍博第i次点名的格子编号。格子从左到右按照1到n编号。

Output

输出一个整数,表示最早一次能够证明爱丽丝一定撒谎的点名编号。如果不能证明,输出-1。点名的编号依次从1到m编号。
开始想的是每加入一个点名编号就重新统计可以放的战舰数,实际上只需要重新计算这个编号的左右区间就可以了。很容易想到的是用set二分查找,另外set不像vector有排序的概念,所以lower_bound(st.begin(),st.end(),x)是错误的,正确的是st.lower_bound(x)。。。我才发现stdio.h比cstdio快了不少(之前好多卡超时的题都A惹QAQ
#include <stdio.h>
#include <set>
#include <iostream>
using namespace std;
const int N = 1005;
set<int>S;
int main()
{int n, k, a, m, x, ans = -1;bool f = 0;cin>>n>>k>>a>>m;S.insert(n+1);S.insert(0);int c = (n+1)/(a+1);//目前一共可放舰数for(int i=1; i<=m; i++){scanf("%d", &x);S.insert(x);//未找到撒谎编号进入if(!f){set<int>::iterator it = S.lower_bound(x);set<int>::iterator it1 = it;it1--;//前一个点名编号set<int>::iterator it3 = it;it3++;//后一个点名编号int num = (*it3 - *it1)/(a+1);//前后编号之间可以放的战舰数c -= num;c += (*it-*it1)/(a+1)+(*it3-*it)/(a+1);//加入该点名编后后总共可放的战舰数if(c < k){ans = i;f = 1;}}}printf("%d\n", ans);return 0;
}

还有一种方法不用set也可以解决。从这个编号向左右寻找最近的两个编号。

#include <stdio.h>using namespace std;
const int N = 200005;
int mp[N];
int main()
{int n, k, a, m, x, ans = -1;bool f = 0;scanf("%d%d%d%d", &n, &k, &a, &m);mp[0] = 1, mp[n+1] = 1;int c = (n+1)/(a+1);//目前一共可放舰数for(int i=1; i<=m; i++){scanf("%d", &x);mp[x] = 1;if(!f){int j, l;for(j=x-1; j>=0&&!mp[j]; j--);for(l=x+1; l<=n&&!mp[l]; l++);int num = (l - j)/(a+1);c -= num;c += (x-j)/(a+1)+(l-x)/(a+1);if(c < k){ans = i;f = 1;}}}printf("%d\n", ans);return 0;
}

转载于:https://www.cnblogs.com/lesroad/p/9351166.html

http://www.lbrq.cn/news/99181.html

相关文章:

  • 正规的环保行业网站开发/河南网站seo
  • 做装修公司的网站/营销型网站建设托管
  • 网站开发 语言/优化seo系统
  • 台州做网站优化哪家好/爱站网长尾关键词挖掘查询工具
  • 做视频网站需要多少带宽/9个成功的市场营销案例
  • 网站开发总结经验和教训/知名网络软文推广平台
  • 低成本做网站 白之家/厦门百度公司
  • 学做网站书籍/广告公司排名
  • 云南网红景点/seo免费
  • 品牌网站建设市场/海淀区seo搜索引擎
  • 做网站为什么需要营业执照/软文写手
  • 工艺宣传网站建设/百度云盘资源共享链接群组链接
  • 怎么做网站服务/网站推广费用
  • 网站建设 找客户/seo全国最好的公司
  • 山东网站建设团队/网站平台做推广
  • 做交友网站多少钱/百度快速排名 搜
  • wordpress怎样添加备案/图片优化软件
  • 开发网站价格/手机如何制作网站教程
  • 什么网站做h5好/东营百度推广电话
  • 好看的网站推荐一下/厦门seo培训学校
  • 做网站一定要效果图吗/网络营销推广8种方法
  • 网站建设价格西安/大连做优化网站哪家好
  • 网站后台用java怎么做/网络公司推广方案
  • 网站么做淘宝客赚佣金/宁波seo哪家好快速推广
  • 做汽车网站开题报告的意义/无锡seo公司
  • 怎么查网站的浏览量/uc浏览器关键词排名优化
  • 做网站用的编程工具/石景山区百科seo
  • 文具网站建设规划书/黄页大全
  • 专做海报设计的网站/百度客户服务电话是多少
  • 中国建设人才网信息网站/电商网站seo
  • Jenkins发布spring项目踩坑——nohup java -jar发布后显示成功,但实际jps查询并未运行
  • Lua脚本如何执行主程序的C函数
  • 2025-08-21 Python进阶4——错误和异常
  • 【Java集合】List,Map,Set-详细讲解
  • Advanced Math Math Analysis |02 Limits
  • Go协程:从汇编视角揭秘实现奥秘