题目取自BZOJ,为了查找方便,Gold组将收录进同一篇博客

1717: [Usaco2006 Dec]Milk Patterns 产奶的模式

二分答案(长度)+ Hash 记录出现次数

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cstring>
 4 #define ULL unsigned long long
 5 #define maxn 1000007
 6 using namespace std;
 7
 8 const ULL base = 21239;
 9 int n,k,ans;
10 ULL h[maxn],P[maxn];
11
12 struct edge{ int from,ans; ULL val; }e[maxn];
13 int tot,first[maxn];
14 void Insert(int L,int R){
15     ULL code = h[R]-h[L-1]*P[R-L+1];
16     int w = code%maxn;
17     for(int i = first[w];i;i = e[i].from){
18         if(e[i].val == code){ ans = max(ans,++e[i].ans); return; }
19     }e[++tot].from = first[w], first[w] = tot, e[tot].val = code;
20     e[tot].ans = 1; ans = max(ans,1);
21 }
22
23 bool Judge(int len){
24     ans = 0,tot = 0;
25     memset(first,0,sizeof(first));
26     for(int i = 1;i <= n-len+1;i++){
27         Insert(i,i+len-1);
28     }return ans >= k;
29 }
30
31 int read(){
32     int ret = 0; char ctr = getchar();
33     while(ctr < '0' || ctr > '9') ctr = getchar();
34     while(ctr >= '0' && ctr <= '9') ret = ret*10+ctr-'0',ctr = getchar();
35     return ret;
36 }
37
38 int main(){
39     n = read(),k = read();
40
41     if(!k) return printf("%d",n),0;
42
43     P[0] = 1;
44     for(int i = 1;i <= n;i++)
45         h[i] = h[i-1]*base+read(),
46         P[i] = P[i-1]*base;
47
48     int L = 0,R = n,mid;
49     while(L < R){
50         mid = (L+R+1)/2;
51         if(Judge(mid)) L = mid;
52         else R = mid-1;
53     }printf("%d",L);
54
55     return 0;
56 }

据说我用的hash叫做秦九韶?

1724: [Usaco2006 Nov]Fence Repair 切割木板

合并果子qwq

首先我们可以研究怎么让每一次切都非常接近木板中点,我们可以来一次逆向的归并排序

使得木板的切点尽量在中间

然后orzccz跟我说这是合并果子

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<algorithm>
 4 #include<queue>
 5 using namespace std;
 6
 7 int n,cnt;long long tot;
 8
 9 int read(){
10     int ret = 0; char ctr = getchar();
11     while(ctr < '0' || ctr > '9') ctr = getchar();
12     while(ctr >= '0' && ctr <= '9') ret = ret*10+ctr-'0',ctr = getchar();
13     return ret;
14 }
15
16 priority_queue<int,vector<int>,greater<int> > Q;
17
18 int main(){
19     n = read();
20
21     for(int i = 1;i <= n;i++){
22         cnt = read();
23         Q.push(cnt);
24     }
25
26     for(int i = 1;i < n;i++){
27         int a = Q.top(); Q.pop();
28         int b = Q.top(); Q.pop();
29         tot += a+b;
30         Q.push(a+b);
31     }
32     printf("%lld",tot);
33     return 0;
34 }

优先队列默认大根堆

转载于:https://www.cnblogs.com/Chorolop/p/7673873.html

[USACO] Gold组刷题记录相关推荐

  1. 【Codeforces】A3组刷题记录( 43 / 43 )

    目录 A1. Combination Lock A2. Summer Camp rzt A3. Soft Drinking ★A4. Coder ★A5. GukiZ and Contest ★A6. ...

  2. 【Codeforces】A2组刷题记录(50 / 50)完结

    目录 A1. Counterexample A2. Good Number A3. Dice Tower ★A4. Alyona and Numbers A5. Mountain Scenery rz ...

  3. BZOJ刷题记录---提高组难度

    BZOJ刷题记录---提高组难度 总目录详见https://blog.csdn.net/mrcrack/article/details/90228694 序号 题号 算法 思想难度 实现难度 总难度 ...

  4. ACM比赛经验、刷题记录及模板库总结(更新中)

    前言 本文所提及的部分题目代码,可以在我的Github上找到 第一部分 经验分享及感受 第二部分 刷题记录 一.基础算法&程序语言 //strlen()函数的复杂度是O(n)要小心 //截取字 ...

  5. LeetCode刷题记录2——217. Contains Duplicate(easy)

    LeetCode刷题记录2--217. Contains Duplicate(easy) 目录 LeetCode刷题记录2--217. Contains Duplicate(easy) 题目 语言 思 ...

  6. Codeforces 刷题记录(已停更)

    Codeforces 每日刷题记录 (已停更) 打'+'是一些有启发意义的题目,部分附上一句话题解,每日更新3题,大部分题目较水. Day ID Problem Tutorial Note 1 1 + ...

  7. 算法笔记CodeUp第一至第六章刷题记录

    文章目录 <算法笔记>2.2小节--C/C++快速入门->顺序结构 1.例题1-1-1 按要求输出信息(1) 2.例题1-1-2 按要求输出信息(2) 3.例题1-2-1 求两个整数 ...

  8. Pythontip刷题记录

    pythontip 刷题记录 11.给你一个正整数列表 L, 输出L内所有数字的乘积末尾0的个数.(提示:不要直接相乘,数字很多,相乘得到的结果可能会很大). 不能直接相乘会太大了,分解质因数,去找2 ...

  9. 【leetcode热题100】刷题记录(5-8)

    [leetcode热题100]刷题记录(5-8) 5. 最长回文子串 2. 两数相加 3. 无重复字符的最长子串 4. 寻找两个正序数组的中位数 5. 最长回文子串 题目链接 给你一个字符串 s,找到 ...

最新文章

  1. Ueeidor 使用
  2. Mirantis 收购 Docker EE | 云原生生态周报 Vol. 28
  3. 【转:SAP PS】 创建项目Project
  4. 全国计算机等级考试题库二级C操作题100套(第42套)
  5. VS2008下最新X264(svn 2009.9)编译不过的解决办法
  6. Java5线程并发库之LOCK(锁)CONDITION(条件)实现线程同步通信
  7. JavaScript高级语法打包 - babel插件安装配置报错!Error: Cannot find module ‘@babel/preset-preset.env‘
  8. java http soap_在Spring中发布SOAP HTTP Webservice - Java杂家 - Blo...
  9. Java中提取字符串中的数字
  10. 安装最新LAMP环境(CentOS7+PHP7.1.5+Mysql5.7)
  11. fastdfs原理及过程
  12. 2020-12-24《重学操作系统——上》林䭽 前阿里巴巴高级技术专家(P8)
  13. 小米平板2,Windows10与Android互刷教程,小米平板2 线刷教程
  14. 鸿蒙手机电脑无缝对接,万物互联?华为鸿蒙OS超级终端功能曝光可一键连接附近设备...
  15. 解决发送push的emoji表情的实用方案
  16. 项目时间(项目活动持续时间估算、计划编制)笔记
  17. C++笔记-学习算法与实现-计算几何-二维向量和线段运算
  18. 高温不怕热,GVS智能家居为你打造夏日清爽雅居
  19. 【LaTex】第二行作者居中(IEEEtran模板)
  20. [YOLOv7]基于YOLO&Deepsort的交通车流量统计系统(源码&部署教程)

热门文章

  1. 微信小程序支付返回信息为空
  2. (原)ubuntu下cadvisor+influxdb+grafana+supervisord监控主机和docker的containers
  3. 关于javascript中apply()和call()方法
  4. hdu 1133 Buy the Ticket(递推+精度精算)
  5. JavaScript学习 第二课(二)
  6. 现在每月五千块钱的收入,相当于七八十年代的多少钱?
  7. 猫连接路由器路由下连七台电脑,为啥每台电脑手动设ip才有网?
  8. 过去几年的互联网经济,首先是“免费经济”
  9. 想要改变自己,请先突破这3个自我限制
  10. 试着当个“刺头”,不要被客户“牵着”鼻子走