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

2024/10/21 模拟赛总结

时间:2024-10-21 22:21:26浏览次数:1  
标签:10 21 int DB cin kMaxN 2024 freopen using

\(100+50+0+5=155\),T3 三目没打括号太爽了

#A. 串串串

基本上就是前缀异或和板子

交换两个 \(0,1\) 不会改变奇偶性,所以可以直接疑惑判断

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

using namespace std;

const int kMaxN = 2e5 + 5;

int n, m, q, l1, r1, l2, r2, f[kMaxN], g[kMaxN];
string s, t;

int main() {
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  freopen("string.in", "r", stdin), freopen("string.out", "w", stdout);
  cin >> n >> m >> s >> t >> q, s = ' ' + s, t = ' ' + t;
  for (int i = 1; i <= n; i++) {
    f[i] = f[i - 1] ^ (s[i] - '0');
  }
  for (int i = 1; i <= m; i++) {
    g[i] = g[i - 1] ^ (t[i] - '0');
  }
  for (; q; q--) {
    cin >> l1 >> r1 >> l2 >> r2;
    cout << (f[r1] ^ f[l1 - 1] ^ g[r2] ^ g[l2 - 1]) << '\n';
  }
  return 0;
}

#B. 方格计数

考虑只需要枚举每条从原点的所有直线,然后直接向下向右移

于是就可以直接枚举步数上 dp 即可

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

using namespace std;
using LL = long long;
using DB = double;

const LL kP = 1e9 + 7;
const int kMaxN = 50 + 2, kMaxM = 500 + 2;

LL t, n, w, h, d, ans, dp[kMaxM][kMaxN], g, l, r;

DB dis(DB x, DB y, DB X, DB Y) {
  return sqrt((x - X) * (x - X) + (y - Y) * (y - Y));
}

int main() {
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  freopen("count.in", "r", stdin), freopen("count.out", "w", stdout);
  for (cin >> t; t; t--, ans = 0) {
    cin >> n >> w >> h >> d;
    for (int x = 0; x <= h; x++) {
      for (int y = 0; y <= w; y++) {
        if (x == 0 && y == 0) {
          if (n == 1) {
            ans += (h + 1) * (w + 1);
          }
          continue;
        }
        if (__gcd(x, y) == 1) {
          LL s = min(1.0 * h / x, 1.0 * w / y);
          dp[0][1] = 1;
          for (int i = 1; i <= s; i++) {
            LL ls = floor(i - d * 1.0 / dis(0, 0, x, y));
            for (int j = 0; j <= ls; j++) {
              for (int k = 1; k <= n; k++) {
                (dp[i][k] += dp[j][k - 1]) %= kP;
              }
            }
          }
          for (int i = 1; i <= s; i++) {
            (ans += (dp[i][n] * (1 + (x && y)) * ((h - i * x + 1) % kP)) * (w - i * y + 1) % kP) %= kP;
          }
          fill(dp[1], dp[s + 1], 0);
        }
      }
    }
    cout << ans << '\n';
  }
  return 0;
}

#C. 树数树

几乎是可并堆板子,直接 DFS 乱合并就可以了

// BLuemoon_
#include <bits/stdc++.h>
#include<ext/pb_ds/priority_queue.hpp>

using namespace std;
using namespace __gnu_pbds;

const int kMaxN = 1e5 + 5;

int t, n;
vector<int> g[kMaxN];
__gnu_pbds::priority_queue<int, less<int>, pairing_heap_tag> q[kMaxN];

void DFS(int u, int fa, int ret = 1) {
  for (int v : g[u]) {
    if (v != fa) {
      DFS(v, u), q[u].join(q[v]), q[v].clear();
    }
  }
  if (q[u].empty()) {
    q[u].push(1);
    return;
  }
  ret += q[u].top(), q[u].pop();
  if (q[u].empty()) {
    q[u].push(ret);
    return;
  }
  ret += q[u].top(), q[u].pop();
  q[u].push(ret);
}

int main() {
  freopen("tree.in", "r", stdin), freopen("tree.out", "w", stdout);
  for (cin >> t; t; t--) {
    cin >> n;
    for (int i = 1, u, v; i < n; i++) {
      cin >> u >> v;
      g[u].push_back(v), g[v].push_back(u);
    }
    DFS(1, 0);
    cout << q[1].top() << '\n';
    for (int i = 1; i <= n; i++) {
      g[i].clear(), q[i].clear();
    }
  }
  return 0;
}

#D. 序列

不会 BM 算法/kk/kk

标签:10,21,int,DB,cin,kMaxN,2024,freopen,using
From: https://www.cnblogs.com/bluemoon-blog/p/18491469

相关文章

  • 2024-10-21每日一题
    P1223排队接水题目描述有\(n\)个人在一个水龙头前排队接水,假如每个人接水的时间为\(T_i\),请编程找出这\(n\)个人排队的一种顺序,使得\(n\)个人的平均等待时间最小。输入格式第一行为一个整数\(n\)。第二行\(n\)个整数,第\(i\)个整数\(T_i\)表示第\(i\)个人的......
  • 这个大纲旨在为希望深入掌握 .vhdx 文件管理的顶尖用户提供全面的知识体系,涵盖了高级
    VHDX的英语全称是VirtualHardDiskExtendedVHDX(VirtualHardDiskExtended)在Windows虚拟化环境中的优势包括以下几个方面:1. 更大的存储容量最大容量:VHDX文件的最大容量可以达到 64TB,相比之下,传统的VHD(VirtualHardDisk)最大容量仅为 2TB。这使得VHDX更适合需要......
  • 10.21日
    CREATETABLEwebsites(idint(11)NOTNULLAUTO_INCREMENT,namechar(20)NOTNULLDEFAULT''COMMENT'站点名称',urlvarchar(255)NOTNULLDEFAULT'',alexaint(11)NOTNULLDEFAULT'0'COMMENT'Alexa排名',co......
  • 2024CCPC哈尔滨站游记
    DAY0晚上8:30飞机落地,真切地感受到了祖国东北的寒冷,呼啸的冷风一刀一刀地割在脸上、手上。遂赶紧打了个网约车去酒店。等车的过程中发现高中同学YingLi也是这个点的飞机并且直接遇见了,他们队也被冷麻了。到酒店后发现订酒店的学弟订成了大床房,而且酒店已经没有别的房间了,所......
  • 10.21
    A.CircleCF297E场上秉持着正难反更难的精神,根本没考虑容斥。正着统计合法方案很难,考虑用总方案数减去不合法方案数。总方案数比较容易求得,为\(\binom{n}{m}\)。不合法的可以归为两种情况:一种是两边都与当前线段相离。另一种是一个与当前线段相交,另一个相离。第一种情......
  • 2024/10/20 模拟赛总结
    \(0+0+0+0=0\),没考#A.袜子分配直接大眼找规律,得到\(n\)双袜子期望为\(\frac{n}{2n-1}\)//BLuemoon_#include<bits/stdc++.h>usingnamespacestd;usingDB=longdouble;DBn;intmain(){freopen("socks.in","r",stdin),freopen("......
  • 20222315 2024-2025-3 《网络与系统攻防技术》实验三实验报告
    1.实验内容通过多次加密、文件格式欺骗、填充、加壳等技术实现shellcode免杀,产生恶意程序,并尝试通过杀毒软件,不被杀毒软件查杀。1、通过使用msf编码器,用msfvenom命令生成exe,jar等文件。2、使用veil、夹壳工具来尝试让shellcode实现免杀:3、使用C+shellcode编程;4、尝试将文件......
  • CSP2024 前集训:csp-s模拟12
    前言咕了好久才写,当时又发烧了所以没有交。虽然有两道签,但一道时计算几何一道放了T4都没打,T1赛时猜到结论和先看T4的都赢麻了,T1赛时\(π\)只会背倒第九位精度炸了暴力都不对。剩下的题当天太难受了都没改,改的两道都是specialjudge哎?T1小h的几何九点圆圆心的证......
  • 10.21
    没时间写题了,写点题解。一道题写了一晚上,效率有点低。。。多校A层冲刺NOIP2024模拟赛09区间给定一个长度为\(N\)的数列\(A_1,A_2,\dots,A_N\)和一个长度为\(N−1\)的数列\(B_2,B_3,\dots,B_N\)。有\(Q\)个询问,每次询问是一个区间\([L_i,R_i]\)。请你求出有多少二元......
  • P10724 [GESP202406 七级] 区间乘积,洛谷id:sxshm
    题解一、分析看看标签:数论,再看题目:完全平方。这不是质因数分解的标配吗?继续看数据范围:1≤ai......