[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分,根本没法玩好吧= = 本来以为打了道正解,打了道暴力,加上个特判分,应该不会死的太惨,然而--为啥我只有特判分啊- - 真的是惨. 讲完题觉得题是 ...
随机推荐
- java格式化时间 String 转Date Date转String
---恢复内容开始--- 时间格式化 Date类型转换成String: Date date = new Date();SimpleDateFormat sdf = new SimpleDateForm ...
- Vue学习笔记【2】——Vue指令之 - v-cloak、v-text和v-html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- git ,报403错误,完美解决方案
首先命令行操作结果如下: root@zhiren-PowerEdge-T110-II:/zrun# git clone https://git.coding.net/xxxxxxxx/xxxx.git ...
- go声明和初始化
go声明和初始化 当我们第一次看见变量和声明时,我们仅仅看见一些内置的类型,比如整型和字符串.现在我们将学习结构体,并且我们会深入学习包括指针的内容. 通过一种最简单的方式去创建一个结构体值类型: g ...
- apk签名原理及实现
发布过Android应用的朋友们应该都知道,Android APK的发布是需要签名的.签名机制在Android应用和框架中有着十分重要的作用. 例如,Android系统禁止更新安装签名不一致的APK: ...
- 百度API获取位置范围内的周边服务
百度地图API是一套为开发者免费提供的基于百度地图的应用程序接口,包括JavaScript.iOS.Andriod.静态地图.Web服务等多种版本,提供基本地图.位置搜索.周边搜索.... <s ...
- Python 中练习题涉及到的无穷大和无穷小问题。
首先来看一下所见的python联系题. inf = infinite 无限制的 float("inf")-1执行后的结果是:() A 1 B inf C -inf D 0 该考点考 ...
- windows API 创建系统托盘图标
系统托盘在我们使用的程序中很普遍,下面我们来看一个很不错的例子,使用Win32 API实现,对理解系统托盘有些帮助. [cpp] view plaincopy #include <windows ...
- CSS:CSS 伪元素
ylbtech-CSS:CSS 伪元素 1.返回顶部 1. CSS 伪元素 CSS伪元素是用来添加一些选择器的特殊效果. 语法 伪元素的语法: selector:pseudo-element {pro ...
- Spellchecker inspection helps locate typos and misspelling in your code, comments and literals, and fix them in one click
Pycharm设置 Pycharm总是很多的拼写检查波拉线 Spellchecker inspection helps locate typos and misspelling in your cod ...