題意:給兩個數字序列a,b,在給出m次區間,每次區間操作可以對l[i]~r[i]間的數字進行任意排列,問序列a能否在m次操作後變為序列b.
思路:貪心思想,每次操作都使a[i]盡可能的靠近它的期望位置,所以對每個操作區間按照它的期望位置排序,結果和b序列一樣那就yes。o(n^2)可以處理出每個a[i]的期望位置。
#include #include #include #include #include #include #include #include #include #include #define ll long long
#define eps 1e-8
#define maxn 150
#define mod 110119
#define inf 0x3f3f3f3f
#define in freopen("in.txt","r",stdin);
using namespace std;
struct nodea[1005];
int b[1005];
int l[1005],r[1005];
bool vis[1005];
bool cmp(struct node x,struct node y)
for(int i=1;i<=n;i++)
for(int i=1;i<=m;i++)
int sign1=0,sign2=0;
for(int i=1;i<=n;i++)
}if(sign1==0) sign2=1;
} if(sign2==1)
for(int i=1;i<=m;i++)
sign2=0;
for(int i=1;i<=n;i++)
} if(sign2==1)else
} return 0;
}
hdu 1698 區間更新
基礎題 初學 include include using namespace std define lson l m rt 1 define rson m 1 r rt 1 1 const int maxn 101000 int h w n int col maxn 2 標記是否當前節點梗係 int...
hdu 4883 區間選點
昨天比賽的時候沒有做出來,本來是想用貪心的,但是貪了好久都沒有招,今天在網上搜了解題報告 好像說這是一類區間選點問題 有乙個好的做法 1 首先把題目中的時間全轉化為分鐘,那麼區間就在0 1440中間 2 對於n組人,有乙個si 和乙個ei,那麼開個陣列,cnt si d cnt ei d 3 也就是...
hdu 4883 區間選點
昨天比賽的時候沒有做出來,本來是想用貪心的,可是貪了好久都沒有招,今天在網上搜了解題報告 好像說這是一類區間選點問題 有乙個好的做法 1 首先把題目中的時間全轉化為分鐘,那麼區間就在0 1440中間 2 對於n組人,有乙個si 和乙個ei,那麼開個陣列,cnt si d cnt ei d 3 也就是...