Codeforces Round #140 (Div. 1) D. The table 构造
D. The table
题目连接:
http://www.codeforces.com/contest/226/problem/D
Description
Harry Potter has a difficult homework. Given a rectangular table, consisting of n × m cells. Each cell of the table contains the integer. Harry knows how to use two spells: the first spell change the sign of the integers in the selected row, the second — in the selected column. Harry's task is to make non-negative the sum of the numbers in each row and each column using these spells.
Alone, the boy can not cope. Help the young magician!
Input
The first line contains two integers n and m (1 ≤ n, m ≤ 100) — the number of rows and the number of columns.
Next n lines follow, each contains m integers: j-th integer in the i-th line is ai, j (|ai, j| ≤ 100), the number in the i-th row and j-th column of the table.
The rows of the table numbered from 1 to n. The columns of the table numbered from 1 to m.
Output
In the first line print the number a — the number of required applications of the first spell. Next print a space-separated integers — the row numbers, you want to apply a spell. These row numbers must be distinct!
In the second line print the number b — the number of required applications of the second spell. Next print b space-separated integers — the column numbers, you want to apply a spell. These column numbers must be distinct!
If there are several solutions are allowed to print any of them.
Sample Input
4 1
-1
-1
-1
-1
Sample Output
4 1 2 3 4
0
Hint
题意
给你一个n*m的矩阵,矩阵元素的数字绝对值小于等于100,你可以使得一行或者一列的所有数取反
然后让你构造一个解,使得每一行每一列的和都是非负数
题解:
显然,我们可以随便搞一搞(雾
我们直接看到负的行,直接翻转就好了,看见负的列也直接翻转
这样最多翻转100^4次,是可以过的。
为什么呢?
因为你翻转一次,可以使得整个矩阵的和至少+2
然后矩阵的和为[-10000,10000],所以最多n*100^4的复杂度
然后水一水就过了
来自主代码手的冬令营构造题选讲
代码
#include<bits/stdc++.h>
using namespace std;
int mp[120][120];
int sumx[120];
int sumy[120];
int ans1[120];
int ans2[120];
int main()
{
int n,m;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
scanf("%d",&mp[i][j]);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
sumx[i]+=mp[i][j];
sumy[j]+=mp[i][j];
}
}
while(1)
{
int flag = 0;
for(int i=1;i<=n;i++)
{
if(sumx[i]<0)
{
for(int j=1;j<=m;j++)
{
sumy[j]=sumy[j] - 2*(mp[i][j]);
mp[i][j]=-mp[i][j];
}
ans1[i]^=1;
sumx[i]=-sumx[i];
flag = 1;
}
}
if(flag)continue;
for(int j=1;j<=m;j++)
{
if(sumy[j]<0)
{
for(int i=1;i<=n;i++)
{
sumx[i]=sumx[i] - 2*(mp[i][j]);
mp[i][j]=-mp[i][j];
}
ans2[j]^=1;
sumy[j]=-sumy[j];
flag = 1;
}
}
if(flag==0)break;
}
int Ans1=0;
for(int i=1;i<=110;i++)
{
if(ans1[i])
Ans1+=1;
}
int Ans2=0;
for(int i=1;i<=110;i++)
{
if(ans2[i])
Ans2+=1;
}
cout<<Ans1<<" ";
for(int i=1;i<=110;i++)
if(ans1[i])cout<<i<<" ";
cout<<endl;
cout<<Ans2<<" ";
for(int i=1;i<=110;i++)
if(ans2[i])cout<<i<<" ";
cout<<endl;
}
Codeforces Round #140 (Div. 1) D. The table 构造的更多相关文章
- Codeforces Round #275 (Div. 1)A. Diverse Permutation 构造
Codeforces Round #275 (Div. 1)A. Diverse Permutation Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 ht ...
- Codeforces Round #323 (Div. 2) C. GCD Table 暴力
C. GCD Table Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/583/problem/C ...
- Codeforces Codeforces Round #319 (Div. 2) A. Multiplication Table 水题
A. Multiplication Table Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/57 ...
- Codeforces Round #256 (Div. 2) D. Multiplication Table(二进制搜索)
转载请注明出处:viewmode=contents" target="_blank">http://blog.csdn.net/u012860063?viewmod ...
- Codeforces Round #323 (Div. 2) C. GCD Table map
题目链接:http://codeforces.com/contest/583/problem/C C. GCD Table time limit per test 2 seconds memory l ...
- Codeforces Round #323 (Div. 2) C.GCD Table
C. GCD Table The GCD table G of size n × n for an array of positive integers a of length n is define ...
- Codeforces Round #323 (Div. 1) A. GCD Table
A. GCD Table time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
- Codeforces Round #256 (Div. 2) D. Multiplication Table 二分法
D. Multiplication Table time limit per test 1 second memory limit per test 256 megabytes input st ...
- Codeforces Round #256 (Div. 2) D. Multiplication Table
主题链接:http://codeforces.com/contest/448/problem/D 思路:用二分法 code: #include<cstdio> #include<cm ...
随机推荐
- ylbtech-QQ(腾讯)-群
ylbtech-DatabaseDesgin:ylbtech-QQ(腾讯)-Account-账户模块, Role-角色.权限模块, Message-消息模块, Qzone-QQ空间,Contacts- ...
- HDU5804 Price List (BestCoder Round #86 A)水题
分析:大于总和输出1 #include <cstdio> #include <cstring> #include <algorithm> using namespa ...
- TopFreeTheme精选免费模板【20130617】
今天给大家推荐8款最新的WordPress和Joomla主题,它们绝大部分都是屏幕自适应主题,Mobile相当友好.如果你喜欢它们,就赶快收藏起来吧. Spacing – 来自Themeforest的 ...
- cocos2d-js取不到cocostudio里面控件问题
var winSize = cc.director.getWinSize(); //add main node var mainNode = cc.Node.create(); ; mainNode. ...
- mysql如果搜索长度过宽 导致显示不全的情况解决
今天我在搜索数据库里面优惠码字段 直接使用 select * from table 的命令的时候 由于 第一个 字段过长导致后面的都无法显示全..我还是宽屏! 所以 搜索了一下 可以让 它单行显示 使 ...
- delphi 判断调试状态
DebugHook 该变量在调试状态下值为1,运行模式为0,例如,我们可以使用如下的代码来简单控制: if DebugHook=0 then
- 解决Ubuntu系统的每次开机重启后,resolv.conf清空的问题
问题情况描述如下: 普及知识: /etc/resolv.conf ,其实是一个Link .它其实指向的是 /run/resolvconf/resolv.conf. Ubuntu 有一个 reso ...
- Event Functions
[Event Functions] A key concept in games programming is that of making changes to position, state an ...
- c#读properties文件
@(编程) properties文件 MONGO_URL = mongodb://172.16.20.3/srtc_dc CURRENT_VERSION = 2.0 IS_AUTO_UPDATE = ...
- 摄影初学者挑选相机的常见问题 FAQ
数码相机一次次降价,越来越多的人加入摄影的行列,照相器材还是一个比较专业的领域,并非简单的参数比一下高低就可以知道好坏,很多朋友往往了解了好久还没弄清孰优孰劣,在购机前踌躇半天拿不定主意,我收集了被问 ...