普及 NOIP 2015 推銷員 貪心

2022-05-01 15:06:13 字數 2275 閱讀 2709

noip 2015 推銷員 

題意:思路:

貪心,首先按每戶人家的推銷疲勞度從大到小排序,考慮選定一組,走路帶來的疲勞度是定的,就是最遠那個*2.

所以對於每個答案= max(sum[ i ]  + mx * 2 , sum [i - 1] + h[i] )。其中sum是排序後對推銷疲勞度做的字首和,而h[i] 儲存 從 i 到 n中,最大的(2 * 距離 + 推銷疲勞度)。

#include #include 

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

//#pragma gcc optimize(3)

//#pragma comment(linker, "/stack:102400000,102400000")

//c++

#define lson (l , mid , rt << 1)

#define rson (mid + 1 , r , rt << 1 | 1)

#define debug(x) cerr << #x << " = " << x << "\n";

#define pb push_back

#define pq priority_queuetypedef

long

long

ll;typedef unsigned

long

long

ull;

typedef pair

pll;

typedef pair

pii;

typedef pair

p3;//priority_queueq;

//這是乙個大根堆q

//priority_queue,greater>q;

//這是乙個小根堆q

#define fi first

#define se second

//#define endl '\n'

#define okc ios::sync_with_stdio(false);cin.tie(0)

#define ft(a,b,c) for(int a=b;a <= c;++a) //

用來壓行

#define rep(i , j , k) for(int i = j ; i < k ; ++i)

//priority_queue, greater>que;

const ll mos = 0x7fffffffll; //

2147483647

const ll nmos = 0x80000000ll; //

-2147483648

const

int inf = 0x3f3f3f3f

;const ll inff = 0x3f3f3f3f3f3f3f3fll; //

18const

double pi=acos(-1.0

);template

inline t read(t&x)

//#define _debug; //*

//#ifdef _debug

freopen(

"input

", "r"

, stdin);

//freopen("output.txt", "w", stdout);

#endif

/*-----------------------show time----------------------

*/const

int maxn = 1e5+9

;

struct

node

a[maxn];

bool cmp(const node &a,const node &b);

intsum[maxn],mx,h[maxn];

intmain()

for(int i=n; i>=1; i--)

for(int i=1; i<=n; i++)

return

0;

}

luogu 2672

NOIP2015普及組複賽A 推銷員

略方法就是把疲勞值從小到大排個序,然後從尾部開始乙個乙個取,當選到第i i 2 個時有2種取法 一是取,那麼x i的答案就是 n i 1,n 區間的疲勞值求和並加上其中最大距離的2倍 二是不取,那麼答案便是 n i 2,n 區間的疲勞值求和並加上 1,n i 區間中 疲勞值 距離的2倍 最大的乙個,...

NOIP2015普及組第四題推銷員

好久沒有寫部落格了,今天再寫一篇。還是先看題 試題描述 阿明是一名推銷員,他奉命到螺絲街推銷他們公司的產品。螺絲街是一條死胡同,出口與入口是同乙個,街道的一側是圍牆,另一側是住戶。螺絲街一共有 n 家住戶,第 i 家住戶到入口的距離為 si 公尺。由於同一棟房子裡可以有多家住戶,所以可能有多家住戶與...

NOIP2015普及組複賽T4 推銷員

阿明是一名推銷員,他奉命到螺絲街推銷他們公司的產品。螺絲街是一條死胡同,出口與入口是同乙個,街道的一側是圍牆,另一側是住戶。螺絲街一共有n nn家住戶,第i家住戶到入口的距離為s is i si 公尺。由於同一棟房子裡可以有多家住戶,所以可能有多家住戶與入口的距離相等。阿明會從入口進入,依次向螺絲街...