B. Negative Prefixes(貪心,構造)
題目傳送門
題目大意
給你一個長度為n的陣列a,每個數字對應一個0或者1,為0即為可以移動,你可以任意移動對應為0的數字
使得字首和陣列p的最大值所在的位置最小
輸出移動後的陣列
思路
為使得字首和的最大值儘可能的早出現,所以我們需要將可以移動的值中大的值儘可能的往前放
即為將可以移動的位置的值按非遞增的方式培訓然後插入不可移動中
AC Code
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
using namespace std;
#define endl '\n'
#define INF 0x3f3f3f3f
#define int long long
#define debug(a) cout<<#a<<"="<<a<<endl;
// #define TDS_ACM_LOCAL
const int N=2e5 +9;
int n, a[N], flag[N];
int b[N];
void solve(){
cin>>n;
memset(b,0,sizeof(b));
int k=0;
for(int i=1; i<=n; i++) cin>>a[i];
for(int i=1; i<=n; i++){
cin>>flag[i];
if(flag[i]==0){
b[++k]=a[i];
}
}
sort(b+1, b+1+k);
for(int i=1; i<=n; i++){
if(flag[i]==1) cout<<a[i]<<" ";
else cout<<b[k--]<<" ";
}
cout<<endl;
return ;
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
#ifdef TDS_ACM_LOCAL
freopen("D:\\VS code\\.vscode\\testall\\in.txt", "r", stdin);
freopen("D:\\VS code\\.vscode\\testall\\out.txt", "w", stdout);
#endif
int T;
cin>>T;
while(T--) solve();
return 0;
}
相關文章
- 貪心、構造合集
- Codeforces Round #537 (Div. 2)B. Average Superhero Gang Power (貪心+暴力)
- 貪心
- 反悔貪心
- Supermarket(貪心)
- 貪心例題
- 貪心+搜尋
- codeforces 1428E. Carrots for Rabbits(貪心(非常優秀的貪心題),結構體過載運算子)結構體
- 反悔貪心雜題
- 貪心演算法演算法
- HDU 5821 Ball(貪心)
- 貪心模式記錄模式
- 「貪心」做題記錄
- [反悔貪心] Add One 2
- 貪心 做題筆記筆記
- 7.5 - 貪心篇完結
- 貪心演算法Dijkstra演算法
- 24/03/20 貪心(一)
- HDU 6047 Maximum Sequence (貪心)
- HDU 5813 Elegant Construction (貪心)Struct
- 漲薪【貪心】【快速冪】
- Leetcode 貪心:差值調整LeetCode
- Least Cost Bracket Sequence(貪心)ASTRacket
- 刪數問題(貪心)
- 牛客 tokitsukaze and Soldier 貪心
- 貪心-刪數問題
- 貪心-*活動選擇
- 資料結構與演算法——貪心演算法資料結構演算法
- 學一下貪心演算法-學一下貪心演算法演算法
- 貪心演算法(貪婪演算法,greedy algorithm)演算法Go
- 9-貪心演算法演算法
- 【貪心】POJ 3617:Best Cow Line
- Moving Tables(貪心演算法)演算法
- hdu--4435--charge-station+貪心
- 淺談貪心與動歸
- 牛客 切長條(貪心)
- 1413D. Shurikens(貪心,棧)3D
- [貪心]最大線段重疊