当前位置: 首页 > news >正文

BZOJ 杂题选记(9.7 - 9.13)

P5909 挂坠

经典贪心:\(n\) 个任务,有时长 \(w_i\) 和必须在 \(c_i\) 之前开始的限制。
交换邻项,可得策略按 \(w_i + c_i\) 从小到大排序。然后在按重量反悔贪心,发现两问一起解决了。

Code
#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
typedef long long ll;
int n;
struct node{ll w, c, r;
}a[N];
priority_queue<ll> q;
signed main(){ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);cin >> n;for(int i = 1; i <= n; ++i) cin >> a[i].c >> a[i].w, a[i].r = a[i].w + a[i].c;sort(a + 1, a + 1 + n, [](node x, node y){ return (x.r == y.r ? x.w < y.w : x.r < y.r); });ll sum = 0, ans = 0;for(int i = 1; i <= n; ++i){if(sum <= a[i].c){++ans;q.push(a[i].w);sum += a[i].w;}else{if(a[i].w < q.top()){sum += -q.top() + a[i].w;q.pop();q.push(a[i].w);}}}cout << ans << '\n' << sum << '\n';return 0;
}

P3620 数据备份

经典贪心:在 \(n\) 个数中选出 \(k\) 个不相邻的使得总和最小。
一个很 tricky 的策略,类似网络流退流的感觉,就是选了一个数 \(i\) 之后,删除左右两个数 \(l_i\)\(r_i\),并把 \(val_i \gets val_{l_i} + val{r_i} - val_{i}\) 重新丢进小根堆,每次选最小的。注意需要用链表维护邻项,因为可能出现二次反悔的情况。

Code
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
typedef long long ll;
typedef pair<ll, int> pii;
int a[N], n, k, pre[N], nxt[N]; 
ll ans, val[N];
bitset<N> bk;
priority_queue<pii, vector<pii>, greater<pii> > q;
void del(int x){nxt[pre[x]] = nxt[x];pre[nxt[x]] = pre[x];bk[x] = 1;
}
signed main(){ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);cin >> n >> k;for(int i = 1; i <= n; ++i){cin >> a[i];pre[i] = i - 1, nxt[i] = i + 1;val[i] = a[i] - a[i - 1];if(i >= 2) q.emplace(val[i], i);}val[1] = val[n + 1] = 1e18;for(int i = 1; i <= k; ++i){while(bk[q.top().second]) q.pop();auto [dis, u] = q.top();q.pop();ans += dis;val[u] = val[pre[u]] + val[nxt[u]] - val[u];del(pre[u]), del(nxt[u]);q.emplace(val[u], u);}cout << ans;return 0;
}
http://www.sczhlp.com/news/79014/

相关文章:

  • 网站审批号网站建设有微信的关系
  • 嘉祥网站seowordpress最新版本
  • 佛山网站优化有招应届培训网页设计
  • 电大考试亿唐网不做网站做品牌网站的开发语言
  • 网站蜘蛛爬行网站打不开显示asp
  • 自己怎么做农好产品网站佛山建网站哪家好
  • 昆明网站建设公司排名猫咪科技新网站怎么做推广
  • 做网站销售会遇到哪些问题企业营销模式
  • 网站开发的学习路线绥化市建设工程网站招投标
  • 做站长工具网站移动网站设计尺寸
  • Git 命令别名
  • 百事通网做网站网站如何做触屏滑动效果
  • 手机什么网站可以设计楼房城阳做网站公司
  • 苏州网络推广建网站怎么在网站底部做备案号
  • 怎么发布自己的网站南京建设工程管理局网站
  • 商务网站建设的一般流程是什么网站建设过程中的通用原则
  • 做商城网站哪家好安卓应用开发软件
  • 巴州住房和城乡建设局网站公司有网站域名,如何做网站
  • 建设交通职业技术学院招聘信息网站开发php网站建设
  • salesforce零基础学习(一百四十四)External Client App浅谈
  • 网站导航栏有哪些商标注册网官网查询
  • 贵州建站互联网科技有限公司西城网站建设公司
  • 广东网站开发费用湘潭seo优化
  • 对个人做swot分析的网站wordpress 显示标签代码
  • 仿射函数的定义及用途
  • macOS下libnfc 1.8.0写卡失败问题及解决方案
  • 购物网站是用什么软件做的个人网页制作教程简单
  • 翻译网站建设微信手机网站三合一
  • 电子商务网站建设与管理实训内容答案观澜网站制作
  • 网站开发四川自适应网站会影响推广