HDOJ 2078 複習時間

2021-06-30 16:56:08 字數 2750 閱讀 5279

題意:有n門要複習的功課,使得複習難度越來越低,並且兩門課之間難度差的平方和盡可能的大,求要怎麼對要複習的功課進行排序。

思路:dp,對難度排序,轉移方程dp[i][j] = max ( dp[i][j], dp[i-1][j-k] + abs ( num[j] - num[j-k] ) * abs ( num[j] - num[j-k] ) ); dp[i][j]表示前j課中選最大的i節課使平方和最大

注意點:無

以下為ac**:

run id

submit time

judge status

pro.id

exe.time

exe.memory

code len.

language

author

13229111

2015-03-24 18:13:43

accepted

2078

15ms

1848k

3288 b

g++luminous11

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#include //#include #define ll long long

#define ull unsigned long long

#define all(x) (x).begin(), (x).end()

#define clr(a, v) memset( a , v , sizeof(a) )

#define pb push_back

#define rdi(a) scanf ( "%d", &a )

#define rdii(a, b) scanf ( "%d%d", &a, &b )

#define rdiii(a, b, c) scanf ( "%d%d%d", &a, &b, &c )

#define rs(s) scanf ( "%s", s )

#define pi(a) printf ( "%d", a )

#define pil(a) printf ( "%d\n", a )

#define pii(a,b) printf ( "%d %d", a, b )

#define piil(a,b) printf ( "%d %d\n", a, b )

#define piii(a,b,c) printf ( "%d %d %d", a, b, c )

#define piiil(a,b,c) printf ( "%d %d %d\n", a, b, c )

#define pl() printf ( "\n" )

#define psl(s) printf ( "%s\n", s )

#define rep(i,m,n) for ( int i = m; i < n; i ++ )

#define rep(i,m,n) for ( int i = m; i <= n; i ++ )

#define dep(i,m,n) for ( int i = m; i > n; i -- )

#define dep(i,m,n) for ( int i = m; i >= n; i -- )

#define repi(i,m,n,k) for ( int i = m; i < n; i += k )

#define repi(i,m,n,k) for ( int i = m; i <= n; i += k )

#define depi(i,m,n,k) for ( int i = m; i > n; i += k )

#define depi(i,m,n,k) for ( int i = m; i >= n; i -= k )

#define read(f) freopen(f, "r", stdin)

#define write(f) freopen(f, "w", stdout)

using namespace std;

const double pi = acos(-1);

template inline bool rd ( t &ret )

inline void pd ( int x )

const double eps = 1e-10;

const int dir[4][2] = ;

struct node

node( int _x, int _y ) : x(_x), y(_y) {}

node( int _x, int _y, int _cnt ) : x(_x), y(_y), cnt(_cnt) {}

};struct edge

edge( int _to, int _wei ) : to(_to), wei(_wei) {}

};int dp[60][50];

int main()

sort ( all ( num ) );

clr ( dp, 0 );

int ans = 0;

rep ( i, 1, m )

ans = max ( ans, dp[i][j] );}}

pil ( ans );

}return 0;

}

hdu 2078 複習時間

problem description 為了能過個好年,xhd開始複習了,於是每天晚上揹著書往教室跑。xhd複習有個習慣,在複習完一門課後,他總是挑一門更簡單的課進行複習,而他複習這門課的效率為兩門 課的難度差的平方,而複習第一門課的效率為100和這門課的難度差的平方。xhd這學期選了n 門課,但是...

hdu 2078 複習時間

problem description 為了能過個好年,xhd開始複習了,於是每天晚上揹著書往教室跑。xhd複習有個習慣,在複習完一門課後,他總是挑一門更簡單的課進行複習,而他複習這門課的效率為兩門課的難度差的平方,而複習第一門課的效率為100和這門課的難度差的平方。xhd這學期選了n門課,但是一晚...

HDU 2078 複習時間 貪心 水

problem description 為了能過個好年,xhd開始複習了,於是每天晚上揹著書往教室跑。xhd複習有個習慣,在複習完一門課後,他總是挑一門更簡單的課進行複習,而他複習這門課的效率為兩門課的難度差的平方,而複習第一門課的效率為100和這門課的難度差的平方。xhd這學期選了n門課,但是一晚...