bzoj1560: [JSOI2009]火星藏宝图】的更多相关文章

考虑到一个性质,A到B的距离一定不小于A到C再到B的距离,因为能够到达这三个点不可能构成锐角三角形 对于当前点的更新只需要找那些无法经过其它点再到当前点的点,相当于是一个y坐标单调减的上凸包,随便维护下 卡常让我迷失了心智 #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath>…
[BZOJ1560][JSOI2009]火星藏宝图(贪心,动态规划) 题面 BZOJ 洛谷 题解 既然所有的位置的权值都大于\(0\),那么就可以直接贪心,按照行为第一关键字,列为第二关键字,来转移.显然如果一个点可以从某一列的一些位置转移过来,那么显然从行最大的那个位置转移过来是最优的,这个随便推一下就知道了. 这样子时间复杂度\(O(nm)\),然后就过了... #include<iostream> #include<cstdio> #include<cstring>…
1560: [JSOI2009]火星藏宝图 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 647  Solved: 309[Submit][Status][Discuss] Description Input Output Sample Input 4 10 1 1 20 10 10 10 3 5 60 5 3 30 Sample Output -4 HINT Source JSOI2009Day2 [代码] #include<cstdio> #…
题目描述 在火星游玩多日,jyy偶然地发现了一张藏宝图.根据藏宝图上说法,宝藏被埋藏在一个巨大的湖里的N个岛上(2<=N<=200,000).为了方便描述,地图把整个湖划分成M行M列(1<=M<=1000),共M*M个小块,并把所有岛按照1...N编了号.第i个岛位于第Xi行Yi列(设其坐标为(Xi,Yi))的格子(Xi,Yi均为整数,并且满足1<=Xi,Yi<=M),岛上藏有价值财富Vi(1<=Vi<=10,000).湖的左上角(1,1)和右下角(M,M)…
这里是\(sb\)的\(O(nm)\)做法 上一篇题解里写的\(O(nm)\)做法并没有看懂,我真是好菜啊 这是一个用了斜率优化,但是复杂度仍然是\(O(nm)\)的做法 我们还是先写出简单的\(dp\)方程 \(dp[i]\)表示到达第\(i\)个点的时候的最大收益 于是就有 \[dp[i]=max(dp[j]+w[i]-(a[i].x-a[j].x)^2-(a[i].y-a[j].y)^2)\] 显然暴力转移是\(O(n^2)\)的 我们发现\(m\)非常的小,于是我们可以考虑一下把\(n\…
传送门 Solution 一个显然的贪心:选的点数越多越好.这个随便推推就知道了. 那么我们就贪心的从一列上挑最靠下的转移 直接转移不斜率优化复杂度\(O(nm)\),吸一口O2过了... Code //By Menteur_Hxy #pragma GCC optimize(2) #include <cmath> #include <cstdio> #include <cstdlib> #include <cstring> #include <iost…
火星藏宝图 Time Limit: 10 Sec  Memory Limit: 64 MB[Submit][Status][Discuss] Description Input Output Sample Input 4 10 1 1 20 10 10 10 3 5 60 5 3 30 Sample Output -4 HINT 1<= M <=2000, 2<= N <=100000. Main idea 每个点上有一个收益,从一个点走到另外一个点的花费是欧几里得距离的平方,问从…
思路:发现如果从A能到B,B能到C,那么一定A能到C,且根据不等式:A^2+B^2<=(A+B)^2,而且权值没有负数,因此经过B比不经过B要优,因此,我们从左上到右下做,每一列,我们只记录之前做过的最下面的那个位置的信息,然后从这个位置的前几列里面寻找最优. #include<algorithm> #include<cstdio> #include<cmath> #include<cstring> #include<iostream> #…
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 Y 1036 [ZJOI2008]树的统计Count 5293 13132 Y 1588 [HNOI2002]营业额统计 5056 13607 1001 [BeiJing2006]狼抓兔子 4526 18386 Y 2002 [Hnoi2010]Bounce 弹飞绵羊 43…
dp练习. codevs 1048 石子归并 区间dp #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #include<iostream> using namespace std; ][],w[],sum[]; inline int read() { ,f = ;char ch = getchar(); ; + ch - '; return x * f…