Pass-Muraille
2014-02-05 01:43
316 查看
遍历一遍即可;
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn = 1005;
int num[ maxn ], vis[ maxn ];
struct node{
int x, y;
}edge[ maxn ];
int main(){
int Case, n, k, sx, sy, ex, ey;
cin >> Case;
while( Case-- ){
cin >> n >> k;
int Max = -1;
memset( num, 0, sizeof( num ) );
memset( vis, 1, sizeof( vis ) );
for( int i = 0; i < n; ++i ){
cin >> sx >> sy >> ex >> ey;
if( sx > ex ){
swap( sx, ex );
}
edge[ i ].x = sx;
edge[ i ].y = ex;
if( Max < ex )
Max = ex;
for( int i = sx; i <= ex; ++i ){
num[ i ]++;
}
}
int ans = 0;
for( int i = 0; i <= Max; ++i ){
int temp = num[ i ] - k;
if( temp > 0 ){
ans += temp;
for( int j = 0; j < temp; ++j ){
int cur = 0;
int cnt = -1;
for( int k = 0; k < n; ++k ){
if( edge[ k ].x <= i && edge[ k ].y >= i && vis[ k ] ){
if( cnt < edge[ k ].y - i + 1 ){
cnt = edge[ k ].y - i + 1;
cur = k;
}
}
}
vis[ cur ] = false;
for( int k = i; k <= edge[ cur ].y; ++k ){
num[ k ]--;
}
}
}
}
cout << ans<< endl;
}
return 0;
}
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn = 1005;
int num[ maxn ], vis[ maxn ];
struct node{
int x, y;
}edge[ maxn ];
int main(){
int Case, n, k, sx, sy, ex, ey;
cin >> Case;
while( Case-- ){
cin >> n >> k;
int Max = -1;
memset( num, 0, sizeof( num ) );
memset( vis, 1, sizeof( vis ) );
for( int i = 0; i < n; ++i ){
cin >> sx >> sy >> ex >> ey;
if( sx > ex ){
swap( sx, ex );
}
edge[ i ].x = sx;
edge[ i ].y = ex;
if( Max < ex )
Max = ex;
for( int i = sx; i <= ex; ++i ){
num[ i ]++;
}
}
int ans = 0;
for( int i = 0; i <= Max; ++i ){
int temp = num[ i ] - k;
if( temp > 0 ){
ans += temp;
for( int j = 0; j < temp; ++j ){
int cur = 0;
int cnt = -1;
for( int k = 0; k < n; ++k ){
if( edge[ k ].x <= i && edge[ k ].y >= i && vis[ k ] ){
if( cnt < edge[ k ].y - i + 1 ){
cnt = edge[ k ].y - i + 1;
cur = k;
}
}
}
vis[ cur ] = false;
for( int k = i; k <= edge[ cur ].y; ++k ){
num[ k ]--;
}
}
}
}
cout << ans<< endl;
}
return 0;
}
Pass-Muraille
相关文章推荐
- poj 1230 Pass-Muraille( 贪心 )
- 暑假集训第四周周三赛 D - Pass-Muraille 穿墙 贪心
- POJ 1230 Pass-Muraille 贪心
- POJ_1230_Pass-Muraille
- poj 1230 Pass-Muraille 贪心
- poj 1230 Pass-Muraille
- poj1230 Pass-Muraille (Greedy)
- POJ 1230 Pass-Muraille 贪心
- POJ-1230 Pass-Muraille
- Pass-Muraille
- POJ 1230 Pass-Muraille (贪心)
- Pass-Muraille
- POJ 1230 Pass-Muraille (贪心)
- poj1230 Pass-Muraille
- POJ 1230 Pass-Muraille
- POJ 1230 Pass-Muraille
- POJ 1230 Pass-Muraille 笔记
- poj 1230 Pass-Muraille
- POJ-1230-Pass-Muraille
- (贪心5.1.1)POJ 1230 Pass-Muraille