您当前的位置: 首页 >  图论

对方正在debug

暂无认证

  • 1浏览

    0关注

    399博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Peaceful Rooks(思维/图论)

对方正在debug 发布时间:2020-12-28 21:26:00 ,浏览量:1

题目 参考 题意:给定n和m,分别代表网格规模和点数,接着给出m个二维坐标的点。输入保证这m个点在横、纵坐标不会冲突。现在给定m个点,求在移动过程中不出现横纵坐标碰撞的情况下,最小的移动次数,使得所有点都在正对角线上(即横坐标等于纵坐标)。 题解:把这m个点看成m个边,(a,b)看成a到b的一条边。转化后发现,当一些点在同一个圈中,则它们需要额外一次的移动。可以这么求解最优解:默认是m次移动,每增加一个圈,需要增加一次移动;每多一些不需移动的点(x,x),则减少一次移动。

#include
using namespace std;
const int maxn = 100010;

int n, m;
int f[maxn];
void init() {
	for (int i = 1; i             
关注
打赏
1664895754
查看更多评论
0.2359s