当前位置:网站首页>Codeworks round 681 (Div. 2) supplement
Codeworks round 681 (Div. 2) supplement
2022-07-05 08:52:00 【Qizi K】
B. Saving the City
The question :1 For bombs ,0 On behalf of the open space . Each time the bomb is detonated, it will be accompanied by the detonating coordinates +1&&-1 Bombs . Give a bomb (b) And light the bomb (a) The money needed , Ask for the minimum money to detonate all bombs .
tips: Must light a bomb . If the placement fee >= Ignition cost , Then it must not be placed ; conversely , Traverse from the beginning , Every time a new bomb is found , Compare (pos - lastpos - 1) * b And a, The former is a small bomb , On the contrary, ignite a new bomb .
#include<bits/stdc++.h>
using namespace std;
const int N = 100010;
int t,n,a,b,len;
char boom[N];
int main(){
cin >> t;
while(t--){
scanf("%d%d%s",&a,&b, boom + 1);
len = strlen(boom + 1);
int ans = 0, idx = 1;
if(a <= b){
while(idx <= len){
while(boom[idx] == '0' && idx <= len) idx ++;
if(idx <= len) ans += a;
while(boom[idx] == '1' && idx <= len) idx ++;
}
}else{
int lastpos = 0;
while(boom[idx] == '0' && idx <= len) idx ++;
if(idx <= len) ans += a, lastpos = idx, idx++;
while(idx <= len){
//printf("idx = %d last = %d ans = %d\n", idx,lastpos,ans);
while(boom[idx] == '1' && idx <= len) idx ++, lastpos ++;
while(boom[idx] == '0' && idx <= len) idx ++;
if(idx > len) break;
if((idx - lastpos - 1) * b <= a) ans += (idx - lastpos - 1) * b;
else ans += a;
lastpos = idx, idx++;
}
}
printf("%d\n", ans);
}
return 0;
}
C. The Delivery Dilemma
The question : The main points of n dish . You can pick up each dish by yourself , You can also take out . If you go by yourself, you must pick it up one by one , Takeout can be delivered directly to home . Ask for the shortest time to get n Time to order .
tips: Two points answer . Note that the minimum time is not necessarily taken in the takeout time .
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 200010;
int t,n;
struct node{
int a, b;
}book[N];
int cmp(node n1, node n2){
return n1.a < n2.a;}
bool check(ll x){
ll sum = 0;
for(int i = 1; i <= n; ++i){
if(book[i].a <= x) continue;
else sum += book[i].b;
}
return sum <= x;
}
int main(){
cin >> t;
while(t--){
cin >> n;
ll minn = 0;
for(int i = 1; i <= n; ++i) scanf("%d",&book[i].a);
for(int i = 1; i <= n; ++i) scanf("%d",&book[i].b), minn += (ll)book[i].b;
sort(book + 1, book + 1 + n, cmp);
if(minn <= book[1].a){
printf("%lld\n", minn);
continue;
}
ll ans = 0, l = book[1].a, r = book[n].a;
while(l <= r){
ll mid = l + r >> 1;
if(check(mid)) ans = mid, r = mid - 1;
else l = mid + 1;
}
printf("%lld\n", ans);
}
return 0;
}
D. Extreme Subtraction
The question : Give a column number , There are two operations :
A. front k Numbers each -1
B. after k Numbers each -1
k Take at will . Can they all become 0.
tips: greedy . The smaller the current number is, the better .
#include<bits/stdc++.h>
using namespace std;
const int N = 30010;
int t, n, a;
int main(){
cin >> t;
while(t--){
scanf("%d",&n);
int idx = 1, last = 1e9, tmp = 0;
bool flag = true;
for(; idx <= n; ++idx){
scanf("%d", &a);
if(last >= a) last = a;
else{
tmp = last;
last = a - last;
break;
}
}
for(idx ++; idx <= n; ++idx){
scanf("%d", &a);
if(a < last) flag = false;
else{
tmp = min(a - last, tmp);
last = a - tmp;
//printf("tmp = %d last = %d\n", tmp,last);
}
}
(flag) ? puts("YES") :puts("NO");
}
return 0;
}
边栏推荐
- js异步错误处理
- 猜谜语啦(6)
- Mathematical modeling: factor analysis
- Guess riddles (3)
- AdaBoost use
- Oracle advanced (III) detailed explanation of data dictionary
- Use and programming method of ros-8 parameters
- How many checks does kubedm series-01-preflight have
- Count of C # LINQ source code analysis
- It cold knowledge (updating ing~)
猜你喜欢
Run菜单解析
Solution to the problems of the 17th Zhejiang University City College Program Design Competition (synchronized competition)
Add discount recharge and discount shadow ticket plug-ins to the resource realization applet
Halcon: check of blob analysis_ Blister capsule detection
[matlab] matlab reads and writes Excel
Guess riddles (5)
Pytorch entry record
Business modeling of software model | overview
Solutions of ordinary differential equations (2) examples
[daiy4] copy of JZ35 complex linked list
随机推荐
How to manage the performance of R & D team?
多元线性回归(梯度下降法)
[牛客网刷题 Day4] JZ35 复杂链表的复制
Kubedm series-00-overview
Halcon blob analysis (ball.hdev)
Illustration of eight classic pointer written test questions
File server migration scheme of a company
Business modeling of software model | vision
使用arm Neon操作,提高内存拷贝速度
Halcon affine transformations to regions
asp.net(c#)的货币格式化
520 diamond Championship 7-4 7-7 solution
Run菜单解析
猜谜语啦(2)
Halcon wood texture recognition
Task failed task_ 1641530057069_ 0002_ m_ 000000
Wechat H5 official account to get openid climbing account
猜谜语啦(5)
Basic number theory - factors
Warning: retrying occurs during PIP installation