[HL] 7.5 集训总结
对于某唤做赛区难度的题,我只能是内流满面。。拿到题,A神题不可做,B,神题不可做,C,神题不可做。。。最后yy了一个A的算法。。。只得了20 TAT。C题骗分似乎有50 。。B题本来想骗分。。然后/ 写成 % 了。。 听说/ 可得80 。。
算了写题解吧。。 A暂时不会。。早上听了再写
B:
这个题得写法太过于机智了。。三种a, b, ans, 将ans 和 a 作为i, j。。何不奇葩。。首先需要明白对于a选b中的元素,选后面的不如取前面的,每转移一次看是否能对答案进行更新,然后在看是否能够转移,应为ai与bi的相等的位置是呈单调递增的,所以对与一个ai,找到一个比当前已经匹配了的点后最近的一个与ai想对应的进行转移。但是二分的时候要特判一下会不会这个对应为空或一定不合法。。。。我re 90了30分钟就是这个地方。。还有while的判断不要再写抽了。。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std; const int maxn = 102000;
const int maxv = 310;
const int inf = 0x3f3f3f3f; int n, m, s, e; int a[maxn], b[maxn]; vector <int> pos[maxn]; int f[maxn][maxv];
int smax = 0; void read() {
scanf("%d%d%d%d", &n, &m, &s, &e);
for(int i = 1; i <= n; ++ i) {
scanf("%d", &a[i]);
}
smax = s / e + 1;
for(int i = 1; i <= m; ++ i) {
scanf("%d", &b[i]);
pos[b[i]].push_back(i);
}
a[0] = b[0] = -1;
} int ans = 0; void sov() {
memset(f, inf, sizeof(f));
f[0][0] = 0;
for(int i = 1; i <= n; ++ i) {
f[i][0] = 0;
for(int j = 1; j <= smax; ++ j) {
f[i][j] = f[i - 1][j];
int ls = -1; int rs = pos[a[i]].size() - 1;
if(rs < 0 || pos[a[i]][rs] <= f[i - 1][j - 1]) continue;
while(rs - ls > 1) {
int mid = (ls + rs) >> 1;
if(pos[a[i]][mid] > f[i - 1][j - 1]) rs = mid;
else ls = mid;
}
if(rs < pos[a[i]].size()) f[i][j] = min(f[i][j], pos[a[i]][rs]);
if(e * j + i + f[i][j] <= s) ans = max(ans, j);
}
}
printf("%d\n", ans);
} int main() {
read();
sov();
return 0;
}
C: 现在想想好水。。按照背包的思路(类似。。反正hobo大神说类似。。)搞搞就有了。。
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std; const int maxn = 1100;
const int maxv = 10100;
int a[maxn]; int n;
int f[maxv]; int smax = 0; void read() {
scanf("%d", &n);
for(int i = 1; i <= n; ++ i) {
scanf("%d", &a[i]);
smax = max(smax, a[i]);
}
} int gcd(int a, int b) {
return a % b == 0 ? b : gcd(b, a % b);
} void sov() {
memset(f, -1, sizeof(f));
for(int i = 1; i <= n; ++ i) {
for(int j = 1; j <= smax; ++ j) {
if(f[j] != -1 || j == a[i]) {
if(f[j] == -1) f[j] = 1;
else {
if(f[gcd(j, a[i])] == -1) f[gcd(j, a[i])] = f[j] + 1;
else f[gcd(j, a[i])] = min(f[gcd(j, a[i])], f[j] + 1);
}
}
}
}
int G = a[1];
for(int i = 2; i <= n; ++ i) {
G = gcd(a[i], G);
}
printf("%d\n",n - f[G]);
} int main() {
read(); sov();
return 0;
}
[HL] 7.5 集训总结的更多相关文章
- QDEZ集训笔记【更新中】
这是一个绝妙的比喻,如果青岛二中的台阶上每级站一只平度一中的猫,差不多站满了吧 自己的理解 [2016-12-31] [主席树] http://www.cnblogs.com/candy99/p/61 ...
- HL AsySocket 服务开发框架 - 总体思路与架构
一 背景 最近在园子了浏览了几篇有关Socket文章,得到了一些启发萌生了想要重构公司在2000年用.NET Framework 2.0 与 Visual Studio 2005开发的AsySocke ...
- 2015UESTC 暑假集训总结
day1: 考微观经济学去了…… day2: 一开始就看了看一道题目最短的B题,拍了半小时交了上去wa了 感觉自己一定是自己想错了,于是去拍大家都过的A题,十分钟拍完交上去就A了 然后B题写了一发暴力 ...
- JS省队集训记
不知不觉省队集训已经结束,离noi也越来越近了呢 论考前实战训练的重要性,让我随便总结一下这几天的考试 Day 1 T1 唉,感觉跟xj测试很像啊?meet in middle,不过这种题不多测是什么 ...
- 2013ACM暑假集训总结-致将走上大三征途的我
回想起这个暑假,从开始与雄鹰一起的纠结要不要进集训队,与吉吉博博组队参加地大邀请赛,害怕进不了集训队.当时激励我月份开始接触的,记得当时在弄运动会来着,然后就问了雄鹰一些输入输出的东西,怀着满心的期待 ...
- 至芯FPGA培训中心-1天FPGA设计集训(赠送FPGA开发板)
至芯FPGA培训中心-1天FPGA设计集训(赠送开发板) 开课时间2014年5月3日 课程介绍 FPGA设计初级培训班是针对于FPGA设计技术初学者的课程.课程不仅是对FPGA结构资源和设计流程的描述 ...
- 2014年CCNU-ACM暑期集训总结
2014年CCNU-ACM暑期集训总结 那个本期待已久的暑期集训居然就这种.溜走了.让自己有点措手不及.很多其它的是对自己的疑问.自己是否能在ACM这个领域有所成就.带着这个疑问,先对这个暑假做个总结 ...
- [补档] 大假期集训Part.1
新博客搭起来先补一发档... 那就从大假期集训第一部分说起好了QwQ 自己还是太菜掉回了2016级水平 day1: day1的时候来得有点晚(毕竟准高一)然后进机房发现早就开考了还没有给我题面于是搞了 ...
- [补档]暑假集训D6总结
考试 不是爆零,胜似爆零= = 三道题,就拿了20分,根本没法玩好吧= = 本来以为打了道正解,打了道暴力,加上个特判分,应该不会死的太惨,然而--为啥我只有特判分啊- - 真的是惨. 讲完题觉得题是 ...
随机推荐
- 【JS学习】慕课网4-1编程挑战 函数
要求:小伙伴们,请编写"改变颜色"."改变宽高"."隐藏内容"."显示内容"."取消设置"的函数,点 ...
- ubuntu docker 安装 oracle
1.ubuntu 安装docker sudo apt-get update sudo apt-get docker.io 2.docker下载oracle镜像 sudo docker pull wna ...
- 【leetcode】954. Array of Doubled Pairs
题目如下: Given an array of integers A with even length, return true if and only if it is possible to re ...
- [HCTF 2018]WarmUp
靶场首页 打开靶场后,查看源码即可看到<!--source.php--> 打开source.php页面 代码如下 <?php highlight_file(__FILE__) ...
- 【基础】Linux软件安装方法
linux中wget .apt-get.yum rpm区别 wget 类似于迅雷,是一种下载工具, 通过HTTP.HTTPS.FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理 名字是Wo ...
- 【LeetCode 7】整数反转
题目链接 [题解] 没什么说的. 就注意一点. 可以在*10+n%10的时候. 顺便判断有没有溢出. (直接用longlong可真是机制..) [代码] class Solution { public ...
- SELinux导致PHP连接MySQL异常Can't connect to MySQL server的解决方法
原文摘自:http://www.jb51.net/article/52581.htm 这篇文章主要介绍了SELinux导致PHP连接MySQL异常Can't connect to MySQL serv ...
- Apache解析漏洞复现(CVE-2017-15715),可以绕过黑名单
照着P神的文章准备复现一下(总结一下经验) 环境的安装 这里面直接使用的vulhub里面的环境来进行安装的(为了方便吗) 基础环境如下  实际上Apache版本在2.4.0~2.4.29即可 i ...
- BAT批处理知识 及 常用批处理
1.常用DOS命令:https://blog.csdn.net/qq_38676810/article/details/79584531 或 https://www.jb51.net/articl ...
- C++一些不常见的库及函数
pbds库 平衡树:one , two #include <bits/extc++.h> using namespace std; using namespace __gnu_pbds; ...