#include<bits/stdc++.h>
using namespace std;
int n,a[10][10],vis[10],ans,b[10][10];
inline int read()
{
int x=0,ff=1;
char ch=getchar();
while(!isdigit(ch))
{
if(ch=='-') ff=-1;
ch=getchar();
}
while(isdigit(ch))
{
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*ff;
}
inline void put(int x)
{
if(x<0) putchar('-'),x=-x;
if(x>9) put(x/10);
putchar(x%10+'0');
}
void work()
{
int cnt=0;
for(int i=1;i<=5;i++)
for(int j=1;j<=5;j++) a[i][j]=b[i][j];
for(int i=1;i<=5;i++)
{
if(vis[i])
{
cnt++;
a[1][i]=-a[1][i];
a[2][i]=-a[2][i];
if(i-1>0) a[1][i-1]=-a[1][i-1];
if(i+1<6) a[1][i+1]=-a[1][i+1];
}
}
for(int i=1;i<=4;i++)
for(int j=1;j<=5;j++)
{
if(a[i][j]==-1)
{
cnt++;
a[i][j]=-a[i][j];
a[i+1][j]=-a[i+1][j];
if(j-1>0) a[i+1][j-1]=-a[i+1][j-1];
if(j+1<6) a[i+1][j+1]=-a[i+1][j+1];
if(i+2<6) a[i+2][j]=-a[i+2][j];
}
}
for(int j=1;j<=5;j++)
{
if(a[5][j]==-1) {cnt=-1;break;}
}
if(cnt!=-1) ans=min(ans,cnt);
}
inline void dfs(int x)
{
if(x==5) {work();return;}
dfs(x+1);
vis[x+1]=1;
dfs(x+1);
vis[x+1]=0;
}
int main()
{
freopen("1.in","r",stdin);
n=read();
for(int k=1;k<=n;k++)
{
char ch;ans=INT_MAX;
for(int i=1;i<=5;i++)
for(int j=1;j<=5;j++)
{
cin>>ch;
if(ch=='0') b[i][j]=-1;
else b[i][j]=1;
}
dfs(0);
if(ans>6) put(-1),cout<<endl;
else put(ans),cout<<endl;
}
return 0;
}

PS:无序变有序...

2:激光炸弹:

#include<bits/stdc++.h>
using namespace std;
int n,r,f[5100][5100],nx,mx,ans;
inline int read()
{
int x=0,ff=1;
char ch=getchar();
while(!isdigit(ch))
{
if(ch=='-') ff=-1;
ch=getchar();
}
while(isdigit(ch))
{
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*ff;
}
inline void put(int x)
{
if(x<0) putchar('-'),x=-x;
if(x>9) put(x/10);
putchar(x%10+'0');
}
int main()
{
freopen("1.in","r",stdin);
n=read();r=read();
nx=mx=r;
for(int i=1;i<=n;i++)
{
int x=read()+1,y=read()+1,v=read();
nx=max(nx,x);mx=max(mx,y);
f[x][y]=v;
}
for(int i=1;i<=nx;i++)
{
for(int j=1;j<=mx;j++) f[i][j]=f[i-1][j]+f[i][j-1]-f[i-1][j-1]+f[i][j];
}
for(int x1=1;x1<=nx-r+1;x1++)
{
for(int y1=1;y1<=mx-r+1;y1++)
{
int x2=x1+r-1;
int y2=y1+r-1;
ans=max(ans,f[x2][y2]-f[x1-1][y2]-f[x2][y1-1]+f[x1-1][y1-1]);
}
}
put(ans);
return 0;
}

前缀和,但注意细节:

1:此题以(0,0)为起始坐标,输入时直接加一.

2:空间限制,省掉a数组,记录是直接用f数组记录,再预处理值(不会有问题,因为推时是从小到大推的(i,j)这个点只有在f[i][j]是才会用到,不会对前面或后面造成影响).

Tallest Cow:

#include<iostream>
#include<queue>
#include<iomanip>
#include<cctype>
#include<cstdio>
#include<deque>
#include<utility>
#include<cmath>
#include<ctime>
#include<cstring>
#include<string>
#include<cstdlib>
#include<vector>
#include<algorithm>
#include<stack>
#include<map>
#include<set>
#include<bitset>
#define _ 0
using namespace std;
const int maxn=11000;
int c[maxn],d[maxn],n,p,h,r,x,y;
map<int,map<int,int> >f;
int main()
{
cin>>n>>p>>h>>r;
for(int i=1;i<=r;i++)
{
cin>>x>>y;
if(x>y) swap(x,y);
if(f[x][y]) continue;
f[x][y]=1;
d[x+1]--;
d[y]++;
}
for(int i=1;i<=n;i++)
{
c[i]=c[i-1]+d[i];
cout<<h+c[i]<<endl;
}
return (0^_^0);
}

细节:

1:直接贪心的思考问题,要求每一个奶牛尽可能的高,限制的条件A,B之间的奶牛都减1即可,A,B不变.

2:一维数组加前缀和实现区间修改.

0x02的更多相关文章

  1. BugPhobia开发篇章:Scurm Meeting-更新至0x02

    0x01 :目录与摘要 If you weeped for the missing sunset, you would miss all the shining stars 索引 提纲 整理与更新记录 ...

  2. xss挑战赛小记 0x02(prompt(1))

    0x0O 上次搜xss挑战赛的时候 还找到了一个看上去难度更高的挑战赛 今天做了一下 学到了很多新东西 这个挑战赛能够在页面成功prompt(1)就算过关了 挑战地址 http://prompt.ml ...

  3. 【学员管理系统】0x02 学生信息管理功能

    [学员管理系统]0x02 学生信息管理功能 写在前面 项目详细需求参见:Django项目之[学员管理系统] Django框架大致处理流程 捋一下Django框架相关的内容: 浏览器输入URL到页面展示 ...

  4. Docker 0x02: Docker生态

    目录 Docker生态 Docker官网 0x00 网址 Docker组件 0x01. docker-client 与 docker-daemon 0x02. docker镜像 0x03. docke ...

  5. 0x02全局变量和局部变量

    全局变量在什么地方定义? .data和.data? 格式如下: 变量名 类型 初始值1,初始值2... 变量名 类型 重复数 dup(初始值1,初始值2,...) 变量名 类型 ? 类型有哪些? 字节 ...

  6. 0x02 译文:Windows桌面应用Win32第一个程序

    本节课我们将用C++ 写一个最简单的Windows 程序. 目录: 创建一个窗口 窗口消息 编写窗口过程 绘制窗口 关闭窗口 管理应用程序状态 代码如下: #ifndef UNICODE #defin ...

  7. 0x02 Spring Cloud 学习文档

    每个Spring项目都有自己的; 它详细解释了如何使用项目功能以及使用它们可以实现的功能. Spring Cloud 版本 参考文档 API文档 Finchley SR2 CURRENT GA Ref ...

  8. 0x02 MySQL SQL基本语句

    有了mysql这个数据库软件,就可以将程序员从对数据的管理中解脱出来,专注于对程序逻辑的编写 mysql服务端软件即mysqld帮我们管理好文件夹以及文件,前提是作为使用者的我们,需要下载mysql的 ...

  9. 0x02 枚举、模拟、递推

    1.TYVJ1266(这站是不是已经倒闭了啊) USACO陈年老题,对于这种开关问题啊,最多只按一次,而且第一行随便按完下面的就全确定了,类似的还有固定翻转一个长度的区间,这个也是最多翻一次的而且翻的 ...

  10. 0x02 递推与递归

    [例题]CH0301 递归实现指数型枚举 #include <iostream> #include <cstdio> #include <algorithm> #i ...

随机推荐

  1. 动态规划精讲(一)LC最长公共子序列

    P1439 [模板]最长公共子序列 题目描述 给出1,2,-,n 的两个排列P1​ 和P2​ ,求它们的最长公共子序列. 输入格式 第一行是一个数 n. 接下来两行,每行为 n 个数,为自然数 1,2 ...

  2. 怎样在Linux中查看apache是用那个httpd.conf

    第一步:找到apache启动命令: [root@WAPBJ01 ~]# ps -ef|grep httpdroot     10575     1  0 19:45 ?        00:00:03 ...

  3. Dockers(29)- 网络连通

    网络连通 背景 基于docker0建了两个容器tomcat01和tomcat02,网段位于172.12.0.0/16 我们又新建了一个网络,网段为192.168.0.0/16,基于此网段新建了两个容器 ...

  4. prometheus、node_exporter设置开机自启动

    方法一.写入rc.local 在/etc/rc.local文件中编辑需要执行的脚本或者命令,我个人习惯用这个,因人而异,有的项目可能需要热加载配置文件,用服务会更好 #普罗米修斯启动,需要后面接con ...

  5. Linux系列(36) - yum命令安装(3)

    yum常用命令 查询 yum list:查询所有可用软件包列表 yum search 关键字:搜索服务器上所有和关键字相关的包 安装 yum -y install 包名 选项: -install 安装 ...

  6. Java线程类

    基础知识 线程状态 根据Thread.State类中的描述,Java中线程有六种状态:NEW,RUNNABLE,WAITING,TERMINATED,BLOCKED. 就绪状态(NEW):当线程对象调 ...

  7. Docker安装Jenkins 从GitLab上拉取代码打包SpringBoot项目并部署到服务器

    1.  安装Jenkins 采用 Docker 方式安装 jenkins 首先,宿主机上需要安装java和maven,这里我的安装目录如下: 由于是docker安装,jenkins将来是在容器里面运行 ...

  8. firewalld防火墙详解

    众所周知,在RHEL7系统中,firewalld防火墙取代了iptables防火墙.我们都知道iptables的防火墙策略是交由内核层面的netfilter网络过滤器来处理的,而firewalld则是 ...

  9. Jenkins持续集成与部署

    一.Jenkins简介 在阅读此文章之前,你需要对Linux.Docker.Git有一定的了解和使用,如果还未学习,请阅读我前面发布的相关文章进行学习. 1.概念了解:CI/CD模型 CI全名Cont ...

  10. 在Vue中使用JSX,很easy的

    摘要:JSX 是一种 Javascript 的语法扩展,JSX = Javascript + XML,即在 Javascript 里面写 XML,因为 JSX 的这个特性,所以他即具备了 Javasc ...