【链接】 我是链接,点我呀:)

【题意】

在这里输入题意

【题解】

如果写过n皇后问题。
肯定都知道
某个点(i,j)和它在同一条对角线上的点分别是i+j的值和i-j的值相同的点。

然后会发现选择的两个点其实就对应了两组i+j和i-j

且每组i+j和i-j

i+j的奇偶性和i-j的奇偶性要是一样的

假设第一组i+j和i-j的奇偶性都是x

第二组i+j和i-j的奇偶性是y

那么x和y要不一样才行。

不然会有重复的点。

会发现只要满足这个就能不重复了。

(画图就知道了

那么我们处理出来i+j和i-j的所有和就好。

排个序然后两重循环找最大的奇和最大的偶就好。。

(i+j和i-j最多2*n-1组,所以O(N^2)是可以的

【代码】

#include <bits/stdc++.h>
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define all(x) x.begin(),x.end()
#define pb push_back
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
using namespace std; const double pi = acos(-1);
const int dx[4] = {0,0,1,-1};
const int dy[4] = {1,-1,0,0};
const int N = 2000;
const LL INF = 1e16; int n;
LL a[N+10][N+10];
map<int,LL> zheng,fu;
vector<pair<LL,int> > v1,v2; int main(){
#ifdef LOCAL_DEFINE
freopen("rush_in.txt", "r", stdin);
#endif
ios::sync_with_stdio(0),cin.tie(0);
cin >> n;
rep1(i,1,n)
rep1(j,1,n)
cin >> a[i][j]; rep1(i,1,n)
rep1(j,1,n){
zheng[i-j]+=a[i][j];
fu[i+j]+=a[i][j];
} for (auto temp:zheng){
v1.push_back(make_pair(temp.second,temp.first));
} for (auto temp:fu){
v2.push_back(make_pair(temp.second,temp.first));
}
sort(v1.begin(),v1.end());
reverse(all(v1)); sort(all(v2));
reverse(all(v2)); vector<int> ans;ans.clear();
LL tt = 0;
int tempx = -1,tempy = -1;LL ttt = -INF; for (auto x:v1){
if (x.second&1){
for (auto y:v2)
if (y.second&1){
int i = (x.second+y.second)/2;
int j = (y.second-x.second)/2;
if (i>=1 && i<=n && j>=1 &&j<=n) {
LL temp = x.first+y.first-a[i][j];
if (temp>ttt){
ttt = temp;
tempx = i,tempy = j;
}
}
}
}
}
tt+=ttt;
ans.push_back(tempx),ans.push_back(tempy); tempx = -1,tempy = -1;ttt = -INF; for (auto x:v1){
if ((x.second&1)==0){
for (auto y:v2)
if ((y.second&1)==0){
int i = (x.second+y.second)/2;
int j = (y.second-x.second)/2;
if (i>=1 && i<=n && j>=1 &&j<=n) {
LL temp = x.first+y.first-a[i][j];
if (temp>ttt){
ttt = temp;
tempx = i,tempy = j;
}
}
}
}
}
tt+=ttt;
ans.push_back(tempx),ans.push_back(tempy); cout<<tt<<endl;
for (int x:ans)cout<<x<<' ';
return 0;
}

【Henu ACM Round#24 B】Gargari and Bishops的更多相关文章

  1. 【Henu ACM Round#24 E】Connected Components

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 要求把连续的一段li..ri的边全都删掉. 然后求剩下的图的联通数 如果暴力的话 复杂度显然是O(k*m)级别的. 考虑我们把li. ...

  2. 【Henu ACM Round#24 D】Iterated Linear Function

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 把B提取出来就是一个等比数列了. 求和一下会发现是这种形式. \(B*\frac{(A^n-1)}{A-1}+A^n*x\) 则求一 ...

  3. 【Henu ACM Round#24 C】Quiz

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 肯定是这样 先放k-1个,然后空1个,然后再放k-1个.然后再空1个.. 以此类推. 然后如果(n/k)*(k-1)+n%k> ...

  4. 【Henu ACM Round#24 A】k-String

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 如果是一个k-string的话. 考虑最后的串假设形式为sss..ss(k个s) 则s中出现的字母,整个串中最后出现的次数肯定为k的 ...

  5. 【Henu ACM Round#15 F】Arthur and Questions

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] a1+a2+...+ak<a2+a3+...ak+1 ->a1<ak+1 a2+a3+...+ak+1<a3 ...

  6. 【Henu ACM Round#16 F】Om Nom and Necklace

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] KMP算法可以把"i前缀"pre[i] 分成ssssst的形式 这里t是s的前缀. 然后s其实就是pre[i]中 ...

  7. 【Henu ACM Round#16 E】Paths and Trees

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 感觉很像一道最短路. 然后就试了一发. 结果真的是.. 只要用一个优先队列优化的dijkstra算法求出每个点的最短路上的前一个点是 ...

  8. 【Henu ACM Round#18 F】Arthur and Walls

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 考虑,为什么一个连通块里面的空格没有变成一个矩形? 如果不是形成矩形的话. 肯定是因为某个2x2的单张方形里面. 只有一个角是墙.其 ...

  9. 【Henu ACM Round#17 F】Upgrading Array

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 如果我们对某一个位置i操作两次的话. 显然结果就和操作一次一样. 因为第一次操作过后1..i这些数字就变成是互质的了. gcd为1. ...

随机推荐

  1. 使用jd-gui+javassist修改已编译好的class文件

    1.原因:因为公司代码管理不当导致源码丢失,只好已编译好的class文件进行修改 2.首先先在myeclipse中新建java项目并导入javassist 3.将需要修改的文件放到指定文件夹下 4.. ...

  2. git diff patch方法

    UNIX世界的软件开发大多都是协作式的,因此,Patch(补丁)是一个相当重要的东西,因为几乎所有的大型UNIX项目的普通贡献者,都是通过 Patch来提交代码的.作为最重要的开源项目之一,Linux ...

  3. PHP SOAP 使用示例

    soap_client.php <?php try { $client = new SoapClient( null, array('location' =>"http://lo ...

  4. Flask-RESTful(转载)

    Flask-RESTful 是一个 Flask 扩展,它添加了快速构建 REST APIs 的支持.它当然也是一个能够跟你现有的ORM/库协同工作的轻量级的扩展.Flask-RESTful 鼓励以最小 ...

  5. 2019-03-21 Python Request InsecureRequestWarning

    问题: 使用Python3 requests发送HTTPS请求,已经关闭认证(verify=False)情况下,控制台会输出以下错误: InsecureRequestWarning: Unverifi ...

  6. ASP.NET-Razor常用方法

    1.使用Scripts.Render()引入脚本 @sectionScrits{ @Scripts.Render("~/bundles/jquery") } 2.使用@Html.H ...

  7. 10.2.0.4 to 10.2.0.5 Installation of Patch Set Release (Windows)

    环境:10.2.0.4集群数据库zlm10g(双节点,zlm10g1,zlm10g2) 系统:Windows 2003 Server 64Bit 内存:2G RAM 存储:ASM 目标:把集群数据库从 ...

  8. AssetBundle打包优化解决方式

    第一阶段:AssetBundle出一套解决方式 1.解决如今同一个资源打2个bundle的冗余问题 2.測试验证节省资源的比率是多少 问题拆分 一.bundle反复 问  题  :同样资源拆分问题? ...

  9. npm --save 选项作用

    npm --save 选项作用 学习了:https://segmentfault.com/q/1010000000403629 -save和save-dev可以省掉你手动修改package.json文 ...

  10. struts.xml中出现extends undefined package struts-default解决的方法

    在struts.xml中出现extends undefined package struts-default,经过查阅资料原来是由于没有联网的缘故. 这样解决:在myeclipse中关联本地的dtd文 ...