ZOJ 3955 Saddle Point
排序。
枚举每一个格子,计算这个格子在多少矩阵中是鞍点,只要计算这一行有多少数字比他大,这一列有多少数字比他小,方案数乘一下就是这个格子对答案做出的贡献。
#include<bits/stdc++.h>
using namespace std; int n,m;
long long mod = 1e9+;
int a[][];
int num1[][];
int num2[][]; long long b[]; struct X
{
int id,val;
}s[]; bool cmp1(X a,X b)
{
return a.val<b.val;
} bool cmp2(X a,X b)
{
return a.val>b.val;
} int main()
{
b[]=;
for(int i=;i<=;i++) b[i]=(b[i-]*)%mod; int T; scanf("%d",&T); while(T--)
{
scanf("%d%d",&n,&m); memset(num1,,sizeof num1);
memset(num2,,sizeof num2); for(int i=;i<=n;i++) for(int j=;j<=m;j++) scanf("%d",&a[i][j]); for(int i=;i<=n;i++)
{
for(int j=;j<=m;j++) s[j].id=j, s[j].val=a[i][j];
sort(s+,s++m,cmp2);
for (int j=,k;j<=m;j=k)
{
for (k=j;k<=m&&s[k].val==s[j].val;k++)
{
num1[i][s[k].id]=j-;
}
}
} for(int j=;j<=m;j++)
{
for(int i=;i<=n;i++) s[i].id=i, s[i].val=a[i][j];
sort(s+,s++n,cmp1);
for (int i=,k;i<=n;i=k)
{
for (k=i;k<=n&&s[k].val==s[i].val;k++)
{
num2[s[k].id][j]=i-;
}
}
} long long ans=; for(int i=;i<=n;i++)
{
for(int j=;j<=m;j++)
{
long long A=b[num1[i][j]],B=b[num2[i][j]]; long long p=A*B%mod;
ans=(ans+p)%mod; }
} printf("%lld\n",ans); }
return ;
}
ZOJ 3955 Saddle Point的更多相关文章
- ZOJ 3955 Saddle Point 校赛 一道计数题
ZOJ3955 题意是这样的 给定一个n*m的整数矩阵 n和m均小于1000 对这个矩阵删去任意行和列后剩余一个矩阵为M{x1,x2,,,,xm;y1,y2,,,,,yn}表示删除任意的M行N列 对于 ...
- Saddle Point ZOJ - 3955 题意题
Chiaki has an n × m matrix A. Rows are numbered from 1 to n from top to bottom and columns are numbe ...
- ZOJ 3955:Saddle Point(思维)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3955 题意:给出一个n*m的矩阵,定义矩阵中的特殊点Aij当且仅当Aij是 ...
- Day7 - C - Saddle Point ZOJ - 3955
Chiaki has an n × m matrix A. Rows are numbered from 1 to n from top to bottom and columns are numbe ...
- Saddle Point ZOJ - 3955(求每个值得贡献)
题意: 给出一个矩阵,删掉一些行和列之后 求剩下矩阵的鞍点的总个数 解析: 对于每个点 我们可以求出来 它所在的行和列 有多少比它大的 设为a 有多少比它小的 设为b 然后对于那些行和列 都有两种操 ...
- ZOJ Saddle Point 数学思维题
http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5564 根据它的定义是行最小,列最大. 可以证明鞍点是唯一的. ...
- ZOJ People Counting
第十三届浙江省大学生程序设计竞赛 I 题, 一道模拟题. ZOJ 3944http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=394 ...
- ZOJ 3686 A Simple Tree Problem
A Simple Tree Problem Time Limit: 3 Seconds Memory Limit: 65536 KB Given a rooted tree, each no ...
- ZOJ Problem Set - 1394 Polar Explorer
这道题目还是简单的,但是自己WA了好几次,总结下: 1.对输入的总结,加上上次ZOJ Problem Set - 1334 Basically Speaking ac代码及总结这道题目的总结 题目要求 ...
随机推荐
- ECNA-A- Abstract Art
题目描述 Arty has been an abstract artist since childhood, and his works have taken on many forms. His l ...
- Bayesian optimisation for smart hyperparameter search
Bayesian optimisation for smart hyperparameter search Fitting a single classifier does not take long ...
- JAVA多线程基础学习二:synchronized
本篇主要介绍Java多线程中的同步,也就是如何在Java语言中写出线程安全的程序,如何在Java语言中解决非线程安全的相关问题,没错就是使用synchronized. 一.如何解决线程安全问题? 一般 ...
- JavaScript 数组操作:slice vs splice
在 JavaScript 中,对于数组的操作有两个很容易混淆的方法 splice, slice ,这里给大家推荐一篇介绍 splice, slice 二者区别的文章. In JavaScript, m ...
- 引用类型 ( 对象定义 )——Function 类型
本文地址:http://www.cnblogs.com/veinyin/p/7607798.html 函数实际上是对象,也具有属性和方法,函数名实际上是指向函数对象的指针 function sum( ...
- Hibernate总结之常用API
1. Configuration Configuration是用来读取配置文件,从配置文件中构件SessionFactory的. SessionFactory sessionFactory=new C ...
- 爬虫实战--利用Scrapy爬取知乎用户信息
思路: 主要逻辑图:
- div遮罩实现禁用鼠标(click、hover等)事件
这两天在帮老师做网页,今天想实现在一块区域内禁止鼠标的各种事件,本来是想在框架模板的js文件里去修改,但是改代码的时候有点凌乱...感觉应该自己把问题想复杂了. 所以想了想要是能实现在一个区域内(如: ...
- 飘雪效果的swf
//第一帧动作 import flash.events.Event; ;k<;k++) { var xuehua:xue= new xue(); xuehua.alpha = Math.rand ...
- Callback2.0
Callback定义? a callback is a piece of executable code that is passed as an argument to other code, wh ...