博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU4666 Hyperspace(曼哈顿)
阅读量:5338 次
发布时间:2019-06-15

本文共 875 字,大约阅读时间需要 2 分钟。

分析:

这是多校的一个题,当时没做出来。学长说让用multiset。

用multiset将每一个数的1<<dim个状态全部保存。假设状态 i, 最远曼哈顿距离应当是 max[i]-min[i], 但如果知道 i 的相反的状态就可以转化成 max[i]+min[(~i)&(1<<dim-1)]. 这和 x-y = x + (-y) 是一个道理.

AC代码如下:

#include 
#include
#include
#include
#include
#include
#include
using namespace std;const int maxn = 60000+10;const int dem = 5; //维数const int INF = (1<<29);int dim, x[maxn][dem];int main(){ int n, ord; while(scanf("%d %d", &n, &dim) == 2) { multiset
ms[40]; multiset
::iterator it; for(int i=1; i<=n; i++) { scanf("%d", &ord); if(ord == 0) { for(int j=0; j
>= 1; } ms[j].insert(s); } } else { //ord == 1 scanf("%d", &ord); for(int j=0; j<1<
>= 1; } it = ms[j].find(s); ms[j].erase(it); } } int ans = 0; for(int j=0; j<(1<

 

转载于:https://www.cnblogs.com/tanhehe/p/3259151.html

你可能感兴趣的文章
生成函数与指数生成函数
查看>>
4.接口隔离原则(Interface Segregation Principle)
查看>>
wcf系列学习5天速成——第四天 wcf之分布式架构
查看>>
LeetCode "Maximum Product of Word Lengths"
查看>>
linux 用户与权限管理
查看>>
Api demo源码学习(9)--App/Activity/Receive Result --Activity间传递数据
查看>>
Vim总结(二)
查看>>
JAVA:URL之图像图标
查看>>
wcf host service
查看>>
JSP内置对象——out,get与post
查看>>
一维数组
查看>>
JAVA多线程通信
查看>>
二分图的最大匹配问题
查看>>
第三次月赛题解
查看>>
Love for music
查看>>
Java 中无参带返回值方法的使用
查看>>
条件判断与循环
查看>>
Java 泛型方法、泛型类、通配符、通配符上下限
查看>>
Activity
查看>>
事件驱动模型
查看>>