首页 > 其他分享 >2024/10/23 模拟赛总结

2024/10/23 模拟赛总结

时间:2024-10-23 20:01:07浏览次数:1  
标签:10 23 int kMaxN 2024 DFS ans using include

\(100+55+30+0=185\),T4 没有 -1 唐完了

#A. GCD

把 \(1\sim 50\) 的 \(f\) 打表输出,可以找到规律:若 \(x\) 为 \(p^k(k\in\mathbb{N}^+,p\in\mathcal{P})\),则 \(f(x)=p\),否则 \(f(x)=1\)

于是可以筛出所有质数并枚举指数

// BLuemoon_
#include <bits/stdc++.h>

using namespace std;
using LL = long long;

const int kMaxN = 1e7 + 5;

LL a, b, ans, f[kMaxN], pr[kMaxN >> 1], tot;
bitset<kMaxN> vis;

int main() {
  freopen("gcd.in", "r", stdin), freopen("gcd.out", "w", stdout);
  vis[0] = vis[1] = 1;
  for (int i = 2; i < kMaxN; i++) {
    if (!vis[i]) {
      pr[++tot] = i;
    }
    for (int j = 1; j <= tot && i * pr[j] < kMaxN; j++) {
      vis[i * pr[j]] = 1;
      if (i % pr[j] == 0) {
        break;
      }
    }
  }
  fill(f, f + kMaxN, 1);
  for (LL i = 1; i <= tot; i++) {
    for (LL j = pr[i]; j < kMaxN; j *= pr[i]) {
      f[j] = pr[i];
    }
  }
  cin >> a >> b;
  for (int i = a; i <= b; i++) {
    ans += f[i];
  }
  cout << ans << '\n';
  return 0;
}

#B. 包含

一个简单的可行性 dp,赛时写个 01 trie 被卡到 \(55\) 了

倒序枚举每个数,其删掉任意一位后一定也可行,于是直接枚举那一位转移即可

// BLuemoon_
#include <bits/stdc++.h>

using namespace std;

const int kMaxN = 1e6 + 5;

int n, m, x;
bitset<kMaxN> f;

int main() {
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  freopen("include.in", "r", stdin), freopen("include.out", "w", stdout);
  cin >> n >> m;
  for (int i = 1; i <= n; i++) {
    cin >> x, f[x] = 1;
  }
  for (int i = kMaxN - 1; i; i--) {
    if (f[i]) {
      for (int j = 0; j < 20; j++) {
        if (i & (1 << j)) {
          f[i - (1 << j)] = 1;
        }
      }
    }
  }
  for (; m; m--) {
    cin >> x, cout << (f[x] ? "yes" : "no") << '\n';
  }
  return 0;
}

#C. 前缀

不想写高精qwq

#D. 移动

自古 T4 出唐题,古有 原地立正 \(75\),今有横冲直撞 \(90\) 分

对于 \(n \le 10\) 枚举下一个走哪里,\(O(3^n)\) DFS 即可

否则一直往前冲,如果前面有障碍则等它升起再走,否则原地不动,如果当前闸门降下也不管,就呆着,不输出 -1

#include <bits/stdc++.h>

using namespace std;

const int kMaxN = 1e5 + 2;

int n, m, ans;
vector<pair<int, int>> f[kMaxN];
unordered_map<int, int> b[kMaxN];

void DFS(int x, int t) {
  if (ans) {
    return;
  }
  if (x > n) {
    ans = t;
    return;
  }
  if (b[x + 1][t + 1] == 0) {
    DFS(x + 1, t + 1);
  }
  if (b[x][t + 1] == 0) {
    DFS(x, t + 1);
  }
  if (x && b[x - 1][t + 1] == 0) {
    DFS(x - 1, t + 1);
  }
}
void Solve() {
  for (int i = 1, x, y, z; i <= m; i++) {
    cin >> x >> y >> z;
    for (int j = y; j <= z; j++) b[x][j] = y;
  }
  DFS(0, 0), cout << ans << '\n', exit(0);
}

int main() {
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  freopen("move.in", "r", stdin), freopen("move.out", "w", stdout);
  cin >> n >> m;
  (n <= 10 && (Solve(), 0)), ans = 1;
  for (int i = 1, x, y, z; i <= m; i++) {
    cin >> x >> y >> z, f[x].push_back({y, z});
  }
  for (int i = 1; i <= n; i++, ans++) {
    for (auto [x, y] : f[i]) {
      if (ans < x) {
        break;
      } else if (ans > y) {
        continue;
      } else {
        ans = y + 1;
      }
    }
  }
  cout << ans << '\n';
  return 0;
}

标签:10,23,int,kMaxN,2024,DFS,ans,using,include
From: https://www.cnblogs.com/bluemoon-blog/p/18498232

相关文章

  • 2024.6.25
    2024.6.25题目T2,3,4只想到了算法,却不知道具体该如何设计T1最后使用了没有证明的常数优化,导致错误T1题面给长为\(n\)的序列\(\{a\}\)和整数\(d\),你需要找到\(l,r\)使得\(l\ler\lel+d\),构造序列\(\{b\}\),其中\[b_i=\left\{\begin{aligned}l,&&a_i\lel\\a_i,&&......
  • Adobe IC(InCopy)软件下载安装与系统要求【2017-2024】
    目录AdobeIC(InCopy)软件简介软件背景主要用途下载链接功能介绍高效协作丰富的编辑工具多种输出与自定义系统要求Windows系统macOS系统AdobeIC(InCopy)软件简介软件背景AdobeInCopy(简称IC)是Adobe公司开发的一款专业的文字处理软件,专为编辑和设计团队中的文本编......
  • 2024.6.20
    2024.6.20T1题面给定一个正整数\(a\),在区间\([l,r]\)中选择一个数\(b\)使得\(a\timesb\)为一个完全平方数,若不存在输出\(-1\)。共\(T\)组测试样例\(1\leT\le1000,1\lea\le10^6,1\lel\ler\le10^{12}\)解法\(\mathcalO(\sqrta)\)的去除\(a\)中的平方因......
  • # 20222402 2024-2025-1 《网络与系统攻防技术》实验二实验报告
    1.实验内容本周学习内容①Shellcode技术②后门概念:后门就是不经过正常认证流程而访问系统的通道。③后门案例:XcodeGhost等。④后门技术:狭义后门:特指潜伏于操作系统中专门做后门的一个程序,“坏人”可以连接这个程序,远程执行各种指令。管控功能实现技术自启动技术进程隐藏技......
  • java基础2024(5.集合)
    集合(Collection)是一组用于存储和操作对象的数据结构。Java集合框架(JavaCollectionsFramework,JCF)提供了一个统一的架构,用于表示和操作集合,它包含了一系列接口、实现类以及算法。Collection接口Collection接口是集合框架的根接口,它扩展了Iterable接口,定义了所有集合类型共......
  • 10.24
    实验3:工厂方法模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解工厂方法模式的动机,掌握该模式的结构;2、能够利用工厂方法模式解决实际问题。[实验任务一]:加密算法目前常用的加密算法有DES(DataEncryptionStandard)和IDEA(InternationalDataEncryptionAlgo......
  • 10.25
    实验2:简单工厂模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解简单工厂模式的动机,掌握该模式的结构;2、能够利用简单工厂模式解决实际问题。[实验任务一]:女娲造人使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数M,则返回一个Man对象,如果传入参数W,则......
  • 10.23 记录
    一些鲜花:自从zcl把我加到了高一小朋友们的团队里,我就能在机房听到一些关键词,包括但不限于:“bug是谁”“M-o-y-y-e-r-s-u-i-y”(大声的念id)“真不愧时他的儿子!”刚才发了一本鸭子的《CSP防爆0手册》,看得津津有味。今天一天没干啥,一个是补了昨天的题。zcl给我讲了t2......
  • 2024/10/23日 日志--》关于Maven的基础学习--2 坐标与依赖范围
    对Maven的学习即将步入卫生,下面是Maven中的坐标和依赖范围的简单笔记点击查看代码--Maven坐标详解--·什么是坐标?---》Maven中的坐标是资源的唯一标识---》使用坐标来定义项目或引入项目中需要的依赖--·Maven坐标的主要组成---》groupld:定义当前Maven项目隶......
  • 20222404 2024-2025-1《网络与系统攻防》 实验二
    1.实验内容(一)本周课程内容了解后门概念,了解后门案例,后门会对系统安全造成的影响。对后门技术进行普及,包括各种进程隐藏技术。了解netcat、meterpreter,veil等常见工具。进一步学习shellcode注入的逻辑和多种情况。(二)问题回答(1)例举你能想到的一个后门进入到你系统中的可能......