http://172.20.6.3/Problem_Show.asp?id=1140

p1140

就一道非常普通的二分,但是非常蛋疼的是验证mid left的过程一直错(就是写一个k次循环然后根据可行与否返回0或1的函数),不知道为什么,嗯哈希搞完了,有点纠结是把之前不熟的东西再搞一遍还是直接搞图论?但是还是先把1140ac比较重要

  1 #include<iostream>
  2 #include<cstdio>
  3 #include<cstring>
  4 #include<algorithm>
  5 #include<cstdlib>
  6 //#include<cmath>
  7 using namespace std;
  8 inline int read(){
  9     int bj=1;char ch=getchar();
 10     while(ch<'0'||ch>'9'){
 11         if(ch=='-')bj=-1;
 12         ch=getchar();
 13     }
 14     int ret=0;
 15     while(ch>='0'&&ch<='9'){ret=ret*10+ch-'0';ch=getchar();}
 16     return ret*bj;
 17 }
 18 int n,m,k,map[2005][2005]={0},a[4005]={0};
 19 bool vis[4005]={0};
 20 void init(){
 21     n=read();m=read();k=read();
 22     for(int i=1;i<=n;i++){
 23         for(int j=1;j<=2*m;j++){
 24             char ch;
 25             cin>>ch;
 26             map[i][j]=ch-'0';
 27         }
 28     }
 29 }
 30 void orbit(int idx){
 31     a[0]=0;
 32     for(int i=1;i<=n;i++)a[++a[0]]=map[i][idx];
 33     for(int i=n;i;i--)a[++a[0]]=map[i][idx+m];
 34 }
 35 int L(int x,int R)  {
 36     int pos=x-R,lim=2*n;
 37     pos+=lim;
 38     if(pos%lim==0)return lim;
 39     return pos%lim;
 40 }
 41 int R(int x,int R)  {
 42     int pos=x+R,lim=2*n;
 43     if(pos%lim==0)return lim;
 44     return pos%lim;
 45 }
 46 void cover(int x,int r)  {
 47     for(int i=0;i<=r;i++)vis[L(x,i)]=vis[R(x,i)]=1;
 48 }
 49 bool check(int r)  {
 50     memset(vis,0,sizeof(vis));
 51     int st=(n+1)/2,ans=1;
 52     cover(st,r);
 53     int pos=R(st,r+1);
 54     while(pos!=st){
 55         //if(r==2)cout<<pos<<"<----\n";
 56         if(vis[pos]){
 57             pos=R(pos,1);
 58             continue;
 59         }
 60         bool fl=0;
 61         for(int j=r;j;j--){
 62             if(a[R(pos,j)]==1){
 63                 fl=1;
 64                 ans++;
 65                 cover(R(pos,j),r);
 66                 break;
 67             }
 68         }
 69         if(fl)continue;
 70         if(a[pos]==1){
 71             fl=1;
 72             ans++;
 73             cover(pos,r);
 74         }
 75         if(fl)continue;
 76         for(int j=1;j<=r;j++){
 77             if(a[L(pos,j)]==1){
 78                 fl=1;
 79                 ans++;
 80                 cover(L(pos,j),r);
 81                 break;
 82             }
 83         }
 84         if(fl)continue;
 85         return 0;
 86     }
 87     return ans<=k;
 88 }
 89 void Binary_Search(){
 90     int l=0,r=2*n+1,ans=0;
 91     while(l<=r){
 92         int mid=(l+r)>>1;
 93         if(check(mid)){
 94             ans=mid;
 95             r=mid-1;
 96         }
 97         else l=mid+1;
 98     }
 99     printf("%d\n",ans);
100 }
101 void work(){
102     for(int i=1;i<=m;i++){
103         orbit(i);
104         Binary_Search();
105     }
106 }
107 int main(){
108     init();
109     work();
110     return 0;
111 }  

View Code

转载于:https://www.cnblogs.com/137shoebills/p/7783530.html

JZYZOJ1140 飞船控制站相关推荐

  1. 【青少年编程】【二级】货运飞船

    「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复[Scratch]或[Python],即可进入.如果加入了之前的社群不需要重复加入. 我们将有关编程题目的教学视频已经发布到抖 ...

  2. 物体掉落速度_俄专家称青海火流星是个“飞船大的物体”,能量堪比万吨炸药爆炸...

    发生在12月23日早上7点25分的青海玉树火流星事件是我国近几十年来极为少见的一次大型火流星降临现象,从这颗火流星经过大气层时发出的强光和声响等表现来看,它的块头应该很大,那么到底有多大呢? 有消息称 ...

  3. SpaceX龙飞船发射之后:在人类探索太空的征途中,深度学习能做什么?

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达来源:机器之心 在人类探索太空的征途中,深度学习能做什么? 在绕地球飞行了 19 个小时 ...

  4. 长二F发射神十二飞船圆满成功!三名航天员飞向空间站天和核心舱

    来源:中国航天科技集团 文:陈立 刘岩 编辑:杨成 高一鸣 校对:林佳昕 监制:索阿娣 6月17日9时22分 长征二号F运载火箭点火起飞 中国航天员聂海胜.刘伯明.汤洪波 乘坐神舟十二号载人飞船 在& ...

  5. 马斯克的星际飞船SN10又炸了,但技术却向前迈出一大步!

    来源:世界先进制造技术论坛(AMT) 编辑:小艾  当地时间2021年3月3日,"钢铁侠"马斯克旗下太空探索公司Space X启动星际飞船(Starship)原型SN10的10公里 ...

  6. SpaceX再送4人上太空,马斯克保证这次飞船厕所不会漏了

    梦晨 发自 凹非寺 量子位 报道 | 公众号 QbitAI SpaceX刚刚再次送4名宇航员(Crew-3)上太空,飞往国际空间站. 这一次,马斯克特别强调: 飞船的厕所肯定是升级了. 原来,就在两天 ...

  7. 三手火箭载二手飞船送四名平民上太空,马斯克负责创造历史,另一位富豪出钱买单...

    博雯 晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 马斯克又创造了商业航天新历史. 北京时间今天上午8点02分,佛罗里达州肯尼迪航天中心,SpaceX的猎鹰9号火箭搭载龙飞船发射升空. ...

  8. 71岁的亿万富翁坐自家飞船成功游览太空!此前已为太空旅行砸了超10亿美元

    博雯 发自 凹非寺 量子位 报道 | 公众号 QbitAI 就在昨天晚上,世界上首架私人太空飞船成功进入太空了! 并不是高空,而是真的能看到地球边缘: 还能经历失重: 这架太空飞船名叫VSS Unit ...

  9. 马斯克的星际飞船又炸了!回收时发动机重启失败,「横」着砸向地面

    贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI 马斯克的星际飞船,又爆炸了! SpaceX的星舰9号原型,几个小时前进行了试射. 在着陆时,SN9直接炸成了一个巨大的火球. 作为今后要实 ...

最新文章

  1. VC++实现QQ聊天工具【源代码】
  2. 隐形数字水印_隐形数字水印的主要用途不包括
  3. php中数组下标,PHP数组介绍_php
  4. Jmeter插件-dubbo
  5. 星际二 地图制作过程
  6. Introduction to dnorm, pnorm, qnorm, and rnorm for new biostatisticians
  7. 啦啦外卖41.8[四端全开源版本]
  8. 曲线运动与万有引力公式_高中物理公式大全!
  9. 紧急大项目的应付手法
  10. 可视化 | Python时间序列化NBA球星赛季数据
  11. 旅行商问题(TSP)建模方法
  12. c语言用随机投点法计算圆周率,(原创精品)用随机投点法计算π值【compute π with dartpoint randomly】...
  13. oracle 查询本年12月,Oracle查询1-12月数据
  14. @Valid使用详解
  15. CDMA与OFDMA的比较
  16. 浙大PAT 1021. Deepest Root (25)
  17. kerboros协议讲解
  18. wps 甘特图_项目进度管理的好方法:甘特图
  19. 鼎盛福分析抖音怎么样做店铺服务获取竞争优势
  20. Windows11镜像网盘链接

热门文章

  1. 不可小视的贝叶斯(一)
  2. android 分析boot.img,Android 系统准备知识-bootimg文件的结构
  3. androidstudio做登录界面_Vue-cli+Element-ui实现后台管理系统(二)实现后台登录功能...
  4. Flash开发iOS应用全攻略(四)——如何为iTunes Connect准备应用
  5. python爬虫怎么挣钱_python爬虫12 | 爸爸,他使坏,用动态的 Json 数据,我要怎么搞?...
  6. 使用StarUML生成live555类图
  7. Linux日常使用的一些积累
  8. python 进阶知识点_高效率 Python 进阶:10 个关键知识点与特性
  9. 【算法】图的基本介绍 以及 存储方式
  10. 【kafka】kafka 消费报错 Failed to add leader for partitions