【csp模拟赛2】 爆搜 方格加数
【题目描述】
xyz1048576正在玩一个关于矩阵的游戏。
一个n*m的矩阵,矩阵中每个数都是[1,12]内的整数。你可以执行下列两个操作任意多次:
(1)指定一行,将该行所有数字+1。
(2)指定一列,将该列所有数字+1。
(3)如果执行完上述操作之后,矩阵中某个数变成了3,6,9,12其中的某一个,我们认为这个数是稳的。
给定初始矩阵,求出任意执行操作之后稳数的最多个数。
【输入格式】
第一行包含两个正整数n,m。
接下来n行,每行m个数,描述这个矩阵。
【输出格式】
一个整数,表示答案。
【输入样例1】
3 3
1 2 3
3 2 4
1 2 1
【输出样例1】
7
【输入样例2】
5 5
2 4 6 8 10
1 2 3 4 5
3 4 5 6 7
7 8 9 10 11
5 10 12 3 7
【输出样例2】
20
【数据规模及约定】
对于10%的数据,n,m≤2。
对于20%的数据,n,m≤5。
对于100%的数据,n,m≤10。
思路:
dfs,爆搜,先只考虑每一行,因为对于一行或者一列,加三次和加六次相对关系不变,我们可以对于每一行或列,枚举加0次,加一次,加两次的情况,DFS行后,循环处理列的情况,
每一列取和3取模相同的最大集合,统计答案。
代码:
#include"iostream"
#include"cstdio"
#include"cstdlib"
using namespace std;
const int N = 100;
int n,m,ans,mod[5],a[N][N];
void check()
{
int sum=0;
for(int j=1;j<=m;j++)
{
mod[0]=mod[1]=mod[2]=0;
for(int i=1;i<=n;i++)if(a[i][j]<=12)mod[a[i][j]%3] ++ ;
sum+=max(max(mod[0],mod[1]),mod[2]);
}
ans=max(ans,sum);
}
void dfs(int x)
{
if(x==n+1)
{
check();
return;
}
for(int i=0;i<=2;i++)
{
for(int j=1;j<=m;j++)a[x][j]+=i;
dfs(x+1);
for(int j=1;j<=m;j++)a[x][j]-=i;
}
}
int main()
{
#ifdef yilnr
#else
freopen("zxx.in","r",stdin);
freopen("zxx.out","w",stdout);
#endif
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
scanf("%d",&a[i][j]);
}
dfs(1);
printf("%d\n",ans);
fclose(stdin);fclose(stdout);
return 0;
}
【csp模拟赛2】 爆搜 方格加数的更多相关文章
- CSP模拟赛游记
时间:2019.10.5 考试时间:100分钟(连正式考试时间的一半还没有到)题目:由于某些原因不能公开. 由于第一次接触NOIinux系统所以连怎么建文件夹,调字体,如何编译都不知道,考试的前半小时 ...
- 【csp模拟赛5】限制 (restrict.cpp)--数学
自己看吧: 爆搜代码: //春水初涨-春林初盛-春风十里-不如你 //----hzwer // 这是啥子题,读不懂-- //题意有问题 -- #include<iostream> #inc ...
- 【csp模拟赛1】T1 心有灵犀
[题目描述] 爱玩游戏的小 Z 最近又换了一个新的游戏.这个游戏有点特别,需要两位玩 家心有灵犀通力合作才能拿到高分. 游戏开始时,两位玩家会得到同一个数字 N,假设这个数字共有 t 位数码, 然后两 ...
- 【csp模拟赛5】加减法--宽搜维护联通快
题目大意: 一开始想用并查集,发现很难维护联通块的代表元素,所以用了宽搜,开数组会炸,所以开一个优先队列维护,每扫完一个联通块,统计答案,清空优先队列,!!千万记住注意数组的大小!!! 代码: #in ...
- 【CSP模拟赛】Freda的迷宫(桥)
题目描述 Freda是一个迷宫爱好者,她利用业余时间建造了许多迷宫.每个迷宫都是由若干房间和走廊构成的,每条走廊都连接着两个不同的房间,两个房间之间最多只有一条走廊直接相连,走廊都是双向通过. 黄昏 ...
- 【CSP模拟赛】Confess(数学 玄学)
题目描述 小w隐藏的心绪已经难以再隐藏下去了.小w有n+ 1(保证n为偶数)个心绪,每个都包含了[1,2n]的一个大小为n的子集.现在他要找到隐藏的任意两个心绪,使得他们的交大于等于n/2. 输入描述 ...
- CSP模拟赛 Repulsed(树形DP)
题面 ⼩ w ⼼⾥的⽕焰就要被熄灭了. 简便起⻅,假设⼩ w 的内⼼是⼀棵 n − 1 条边,n 个节点的树. 现在你要在每个节点⾥放⼀些个灭⽕器,每个节点可以放任意多个. 接下来每个节点都要被分配给 ...
- 【csp模拟赛九】--dfs
思路: 这道题可以宽搜,深搜,最短路 代码: #include<cstdio> #include<cstring> #include<iostream> #incl ...
- 【csp模拟赛4】旅行计划 (travelling.cpp)--欧拉回路
[题目描述] 小 Z 打算趁着暑假,开启他的旅行计划.但与其他同学不同的是,小 Z 旅 行时并不关心到达了哪个网红景点打了哪些卡.小 Z 更关注沿路的风光,而且 小 Z 觉得,尽管多次到达同一个地方, ...
随机推荐
- hyper-v虚拟机centos7网络配置
原文地址:https://jingyan.baidu.com/article/91f5db1b0279bd1c7e05e377.html hyper-v安装了centos7之后并不能上网,这里简单介绍 ...
- 第一章、web应用安全概论--web应用系统介绍--TCP/IP协议
TCP/IP协议源于1969年,是国际互联网Internet采用的协议标准TCP/IP协议是一组通信协议的代名词,是由一系列协议组成的协议族,本身是指两个协议集: TCP--传输控制协议 ...
- 使用Golang时遇到的一些坑
1. [致命]不是所有Panic都能捕获 我们知道Golang给开发人员提供recover()机制,对堆栈异常(panic)进行捕获并自定义其处理逻辑.下面举个例子: 构造一个除0的异常场景: 输出结 ...
- 【转载】STM32 IAP 在线升级详解
(扩展-IAP主要用于产品出厂后应用程序的更新作用,考虑到出厂时要先烧写IAP 再烧写APP应用程序要烧写2次增加工人劳动力基础上写了“STM32 IAP+APP ==>双剑合一”链接稍后 ...
- 使用Vue CLI脚手架搭建vue项目
本次是使用@vue/cli 3.11.0版本搭建的vue项目 1. 首先确保自己的电脑上的Node.js的版本是8.9版本或者以上 2. 全局安装vue/cli npm install @vue/cl ...
- c# 将datatable中的数据保存到excel文件中
using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Lin ...
- 用最简单的代码写出banner图轮播效果
以下视频是由[赵一鸣随笔]博客提供的“用最简单的代码写出banner图轮播效果”. 查看全屏高清视频,请点击链接:http://www.zymseo.com/58.html
- ulimit 命令详解 socket查看linux最大文件打开数
ulimit 命令详解 Linux对于每个用户,系统限制其最大进程数.为提高性能,可以根据设备资源情况,设置各linux 用户的最大进程数 可以用ulimit -a 来显示当前的各种用户进程限 ...
- Image Processing and Computer Vision_Review:Recent Advances in Features Extraction and Description Algorithms: A Comprehensive Survey——2017.03
翻译 特征提取和描述算法的最新进展:全面的调查 摘要 - 计算机视觉是当今信息技术中最活跃的研究领域之一.让机器和机器人能够以视线的速度看到和理解周围的世界,创造出无穷无尽的潜在应用和机会.特征检测和 ...
- Django:常用字段、手动自动第三张表单、元信息
一.常用字段和非常用字段 二.手动,自动创建第三张表 三.元信息 四.defer和only 一.常用字段和非常用字段 -常用字段 AutoField int自增列,必须填入参数 primary_key ...