对于某唤做赛区难度的题,我只能是内流满面。。拿到题,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 集训总结的更多相关文章

  1. QDEZ集训笔记【更新中】

    这是一个绝妙的比喻,如果青岛二中的台阶上每级站一只平度一中的猫,差不多站满了吧 自己的理解 [2016-12-31] [主席树] http://www.cnblogs.com/candy99/p/61 ...

  2. HL AsySocket 服务开发框架 - 总体思路与架构

    一 背景 最近在园子了浏览了几篇有关Socket文章,得到了一些启发萌生了想要重构公司在2000年用.NET Framework 2.0 与 Visual Studio 2005开发的AsySocke ...

  3. 2015UESTC 暑假集训总结

    day1: 考微观经济学去了…… day2: 一开始就看了看一道题目最短的B题,拍了半小时交了上去wa了 感觉自己一定是自己想错了,于是去拍大家都过的A题,十分钟拍完交上去就A了 然后B题写了一发暴力 ...

  4. JS省队集训记

    不知不觉省队集训已经结束,离noi也越来越近了呢 论考前实战训练的重要性,让我随便总结一下这几天的考试 Day 1 T1 唉,感觉跟xj测试很像啊?meet in middle,不过这种题不多测是什么 ...

  5. 2013ACM暑假集训总结-致将走上大三征途的我

    回想起这个暑假,从开始与雄鹰一起的纠结要不要进集训队,与吉吉博博组队参加地大邀请赛,害怕进不了集训队.当时激励我月份开始接触的,记得当时在弄运动会来着,然后就问了雄鹰一些输入输出的东西,怀着满心的期待 ...

  6. 至芯FPGA培训中心-1天FPGA设计集训(赠送FPGA开发板)

    至芯FPGA培训中心-1天FPGA设计集训(赠送开发板) 开课时间2014年5月3日 课程介绍 FPGA设计初级培训班是针对于FPGA设计技术初学者的课程.课程不仅是对FPGA结构资源和设计流程的描述 ...

  7. 2014年CCNU-ACM暑期集训总结

    2014年CCNU-ACM暑期集训总结 那个本期待已久的暑期集训居然就这种.溜走了.让自己有点措手不及.很多其它的是对自己的疑问.自己是否能在ACM这个领域有所成就.带着这个疑问,先对这个暑假做个总结 ...

  8. [补档] 大假期集训Part.1

    新博客搭起来先补一发档... 那就从大假期集训第一部分说起好了QwQ 自己还是太菜掉回了2016级水平 day1: day1的时候来得有点晚(毕竟准高一)然后进机房发现早就开考了还没有给我题面于是搞了 ...

  9. [补档]暑假集训D6总结

    考试 不是爆零,胜似爆零= = 三道题,就拿了20分,根本没法玩好吧= = 本来以为打了道正解,打了道暴力,加上个特判分,应该不会死的太惨,然而--为啥我只有特判分啊- - 真的是惨. 讲完题觉得题是 ...

随机推荐

  1. Web server failed to start. Port 8080 was already in use.

    Description: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the ...

  2. pygame游戏框架

    #_author:来童星#date:2019/12/22 import pygame import sys pygame.init() size=width,height=640,480 screen ...

  3. Delphi DBgrid 动态点击事件

    错误的写法: DBGrid1CellClick(DBGrid1.Columns[ DBGrid1.DataSource.DataSet.RecNo ]); //执行点击事件 正确的写法: DBGrid ...

  4. Android中的ListView的绘制过程中执行的方法

    首先,系统在绘制ListView之前, 将会先调用getCount方法来获取Item的个数.(如果getCount方法返回0的话,列表时不显示任何内容的) 之后每绘制一个 Item就会调用一次getV ...

  5. web服务nginx和php的相互关系

    nginx和php有什么关系?很多新手可能有这个疑问,我之前学php也没注意这些问题,只管着按文档配置操作,完成php项目就不管了,最近特意总结了一下. php是一门编程语言,讲究说学逗唱...呃,不 ...

  6. DGIM算法

    /***************************************************** copyright (C), 2014-2015, Lighting Studio. Co ...

  7. Android逆向之smali语法宝典

    0x01.前言 Android采用的是java语言进行开发,但是Android系统有自己的虚拟机Dalvik,代码编译最终不是采用的java的class,而是使用的smali.我们反编译得到的代码,j ...

  8. Ubuntu 没有 无线网 RTL8821ce 8111 8186

    1.将ubuntu的linux内核版本更改到4.14(其他版本不兼容这个无线网卡的驱动) 1.1 找到内核版本 #到 Ubuntu网站http://kernel.ubuntu.com/~kernel- ...

  9. Bochs调试加载符号文件的问题

    1. Bochs中的调试命令ldsym没有触发的情况. 参考:http://www.ibm.com/developerworks/cn/linux/sdk/lex/ Lex 代表 Lexical An ...

  10. [Flink原理介绍第四篇】:Flink的Checkpoint和Savepoint介绍

    原文:https://blog.csdn.net/hxcaifly/article/details/84673292 https://blog.csdn.net/zero__007/article/d ...