ICode9

精准搜索请尝试: 精确搜索
  • stringstream搭配getline解决每行不定数量的输入问题2022-09-05 16:32:08

    例题: https://www.acwing.com/problem/content/description/922/ 代码: #include<bits/stdc++.h> using namespace std; int m, n; bool A_M[510][510]; int dis[510]; int stop[510]; bool vis[510]; void BFS() { deque<int> que; que.push_back(1);

  • 摩尔投票法学习笔记2022-09-04 15:01:59

    摩尔投票法 绝对众数 :数列内出现次数超过数列长度一半的数。 摩尔投票法是一个求绝对众数的利器。 例题 1. 洛谷 P2397 yyy loves Maths VI (mode) 摩尔投票法板子题。 假设现在有一个小房子,有一个新的数 \(x\) 需要进来。 如果房子是空的,那么 \(x\) 就直接进去; 如果房子内的数和

  • 主元素问题与摩尔投票法、格雷码2022-09-03 19:31:54

    一堆小玩意,放到一起。 题意:给定一个n个元素数列,保证有一个数\(a\)的出现次数超过\(\lfloor\frac n2 \rfloor\),求这个数。 数据范围\(n<=3000000,a_i\le2147483647,\)时限0.5s,空间2M。 也就是说你就只开几个变量就行了。(虽然考试的时候有人拿hash玄学乱搞过了) 首先这个时间卡掉了排

  • 马走日2022-09-02 14:32:47

    https://www.acwing.com/problem/content/1118/ #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int N = 10; int n, m; bool st[N][N]; int ans; int dx[8] = {-2, -1, 1, 2, 2, 1, -1, -2}; int dy[8] = {1

  • 172. 阶乘后的零2022-09-01 22:32:20

      labuladong 题解思路 难度中等717收藏分享切换为英文接收动态反馈 给定一个整数 n ,返回 n! 结果中尾随零的数量。 提示 n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1   示例 1: 输入:n = 3 输出:0 解释:3! = 6 ,不含尾随 0 示例 2: 输入:n = 5 输出:1 解释:5! = 120 ,有一

  • 112.path-sum 路径总和2022-09-01 20:05:09

    带明显的回溯的版本 #include <vector> using std::vector; class Solution { private: vector<int> res; int sum = 0; public: void cnt_sum(TreeNode *root) { if (root->left == nullptr && root->right == nullptr) {

  • 图的几种存储方法2022-09-01 08:35:01

    作为我们学习图论的基点,我们有必要了解几种常用的图存储方法,并比较他们的优劣与适用范围。 本文参考了https://oi-wiki.org/graph/save/ 直接存边: 由于直接存边的遍历效率低下,一般不用于遍历图。 在 Kruskal算法中,由于需要将边按边权排序,需要直接存边。 在有的题目中,需要多次建图(

  • CF643G Choosing Ads2022-08-31 21:03:38

    传送门 思路 先考虑一下 \(p > 50\) 的情况 这时候就是求“绝对众数” 一个方法就是用“摩尔投票”法 方法就是:每次将不同的两个数去掉,剩下的那种数就是绝对众数(这是保证在有的情况下,才能求出正确的众数) 再考虑 \(20\le p \le 50\) 时,其实我们可以维护 \(\lfloor\frac{p}{100}\rf

  • 给定一个无向图 求最少加多少条路径(任意两点可以两条路径走到) 可以变成双连通分量 (cnt+1)/22022-08-31 17:05:21

    无向图 缩点后 变成 一颗树 叶子结点就是 出度为0 #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N = 5010,M=20010; int n,m; int h[N], e[M], ne[M], idx; int dfn[N], low[N], timestamp; // 时间戳 int stk[N], top; int id[

  • 判断组合数奇偶2022-08-31 13:33:23

    结论 先说结论 对于组合数\(C^k_n\),若n&k==k,则其为奇数,否则,其为偶数。 证明 \(C^k_n=\frac{n!}{k!(n-k)!}\) 我们用a表示n!中因子2的个数 b表示k!中因子2的个数 c表示(n-k)!中因子2的个数 显然有\(a\ge b+c\)(因为\(C^k_n\)一定为整数),如果a==b+c,那么\(C^k_n\)一定为奇数,若a>b+c\(,C^

  • P3808 【模板】AC 自动机(简单版)2022-08-31 13:30:40

    题目链接 代码 #include <iostream> #include <cstdio> using namespace std; const int N = 1000010; int n; char str[N]; int tr[N][26],cnt[N],idx; int fail[N],q[N]; void insert (char s[N]) { int p = 0; for (int i = 0;s[i];i++) { int t = s[i] - '

  • 求一个图的最打的半联通子集=求一个图的最长链方案和个数2022-08-30 23:02:48

    拓扑图最长路 等于 背包问题求方案数 因为要求点不同 存在多条边同一情况 需要边判重(set) 拓扑求方案数 #include <iostream> #include <cstring> #include <algorithm> #include <unordered_set> using namespace std; typedef long long LL; const int N = 1e5+10,M=2e6+10;

  • 构造2022-08-29 23:33:48

    构造题常常需要发现一些隐蔽的性质。提高观察力! CF1670E 题目大意 给定一个 \(n = 2^p\) 个节点的树的形态,需要给每个点和每条边赋权值,一共 \(n\) 个点和 \(n-1\) 条边,权值在\([1, 2n-1]\) 里面选并且不能重复。然后钦定一个根节点。 需要使根节点到每个点和每条边的路径上的权值

  • Subarray With Elements Greater Than Varying Threshold2022-08-29 20:32:36

    Subarray With Elements Greater Than Varying Threshold You are given an integer array $nums$ and an integer $threshold$. Find any subarray of $nums$ of length $k$ such that every element in the subarray is greater than $threshold / k$. Return the size of a

  • gym-103708B Building 5G antennas2022-08-28 19:30:15

    Building 5G antennas dfs 剪枝 要字典序最小,显然第一个点就是 \(1\),后面考虑走 \(k\) 步后能到达的点集中选一个字典序最小的,重复该过程 考虑 \(set[i][j]\) 表示第 \(i\) 号点当前能走 \(j\) 步所包含的点的集合,我们可以发现对于相同的点,如果 \(j_1 > j_2\),显然有 \(set[i][j_1]

  • 小度养小猫2022-08-28 14:02:53

    https://matiji.net/exam/contest/contestdetail/55?type=4 const int N = 1e5 + 7; int n, k, c[N]; void solve() { long long ans = 0; scanf("%d%d", &n, &k); for (int i = 1; i <= n; ++ i) { scanf("%d", &c

  • 191. 位1的个数2022-08-28 14:01:33

      labuladong 题解思路 难度简单506收藏分享切换为英文接收动态反馈 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量)。   提示: 请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将

  • CF1506G 题解2022-08-27 13:34:27

    前言 题目传送门! 更好的阅读体验? 校内考试题目。写一篇题解。 思路 首先记录每个字符出现了多少次,然后创建单调栈。 看当前字符是否入栈,如果没有入栈,就不停 pop(),直到: 栈空了。 栈顶字典序大于当前字符。 栈顶元素已经被删掉了(因为栈外面用 cnt[i] 记录了每个数的次数)。 满足单

  • 最小生成树2022-08-26 20:33:32

    最小生成树主要应用: 举个例子,两个城市需要光缆联通,且两个城市安装光缆有一定价格,任意两个城市必须联通,求最小价格 这时候就需要运用到最小生成树,当然这个题只是需要套模板,有些变种:https://www.luogu.com.cn/problem/P1195  这道题也是最小生成树,换汤不换药 最小生成树有2种算法:pr

  • 区块反转(模拟、链表)2022-08-26 12:32:49

    题意 题目链接:https://www.acwing.com/problem/content/description/4280/ 数据范围 \(1 \leq K, N \leq 10^5\) 思路 这道题难度不大,但是我们需要思考如果写得更加简短。 这里给出yxc的实现方式。以地址为索引,使用两个数组存储节点的数值以及下一个节点的地址。 用一个数组按照

  • 一个字符串回文子串数量最大的排列 证明2022-08-26 01:04:14

    CF1063A 一个字符串回文子串数量最大的排列 证明 Problem - 1063A - Codeforces 若将一个字符串任意排列,要使其中的回文子串数量最多,按字典序排序是一种方法。 首先,在一个回文串中,开头的字符和结尾的字符一定是相同的。 将字符串按字典序排序,保证了以某一种字符作为子串的首尾,任

  • 天长地久2022-08-25 13:00:09

    https://www.acwing.com/problem/content/description/4275/ 优质题解:https://www.acwing.com/solution/content/89003/ #include <iostream> #include <vector> #include <algorithm> using namespace std; typedef pair<int,int> PII; int m,k,cnt = 0

  • 398. 随机数索引2022-08-24 23:33:12

      labuladong 题解思路 难度中等247收藏分享切换为英文接收动态反馈 给你一个可能含有 重复元素 的整数数组 nums ,请你随机输出给定的目标数字 target 的索引。你可以假设给定的数字一定存在于数组中。 实现 Solution 类: Solution(int[] nums) 用数组 nums 初始

  • P2058 [NOIP2016 普及组] 海港2022-08-24 22:01:39

    # [NOIP2016 普及组] 海港 ## 题目背景 NOIP2016 普及组 T3 ## 题目描述 小 K 是一个海港的海关工作人员,每天都有许多船只到达海港,船上通常有很多来自不同国家的乘客。 小 K 对这些到达海港的船只非常感兴趣,他按照时间记录下了到达海港的每一艘船只情况;对于第 $i$ 艘到达的船,他记

  • 急性中风2022-08-24 13:01:12

    https://www.acwing.com/problem/content/1583/ 注意: 三维的时候有六个方向。 #include <iostream> #include <cstring> #include <queue> using namespace std; const int M = 1286, N = 128, L = 60; int m, n, l, T; int g[L][M][N]; struct Node { int x, y,

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有