ICode9

精准搜索请尝试: 精确搜索
  • acwing105七夕祭 (贪心)2022-06-24 15:35:56

    七夕祭 题目大意 给一个n * m矩阵,有一些位置是1,其他是0。 每次操作可以交换相邻的两个数,特别的,每行/每列的第一个数和最后一个数视为相邻。 希望可以实现两个目标:1.每一行1一样多;2.每一列的1一样多 问最多可以实现几个目标,并求出对应的最少操作次数。 解题思路 如果1的总数是列的

  • CF448E 【Divisors】题解--zhengjun2022-06-11 15:00:13

    一道函数递归题 记录一下当前的是第几层和现在要分的数是几(分别用 \(x\) 和 \(y\) 表示) 然后,每一次从小到大枚举因子,继续递归直到输出的总数到达 \(10^5\)。 #include<cstdio> #include<cmath> #define ll long long using namespace std; ll a,b,tot; void dfs(ll x,ll y){ if(t

  • 洛谷P2860 [USACO06JAN]Redundant Paths G (tarjan,边双缩点)2022-06-10 22:00:10

    本题的大意就是加最少的边使得图成为边双。 多举例子,画图分析可得:最终答案就是叶子节点(度数为1的点)的个数加1在除以2。 那么我们的目的就转化为找叶子节点: 首先通过tarjan找到割边,再dfs将原图分为几个边双(通过割边划分),缩点,最后统计度数为1的节点个数即可。 1 #include<bits/stdc

  • golang重定向输入输出办法(算法竞赛向)2022-06-07 17:34:54

    本来是想用golang,因为这是工作中的主要语言,不妨试一试打cf,结果写了一题就被劝退了,golang对于打算法竞赛极不友好 首先,golang在cf中,fmt的各种scanf和printf并不直接接收来自于标准输入输出流的内容,所以有些oj由于没有做对STD IO的支持,golang提交上去就报CE,很恶心 其次,golang里面缺

  • 【luogu AT2363】Tautonym Puzzle(构造)2022-06-04 19:00:38

    Tautonym Puzzle 题目链接:luogu AT2363 题目大意 要你用至多 100 种字符,构造出一个长度不超过 200 的字符串,使得这个字符串的好的子序列数量恰好为 n。 定义一个串是好的当且仅当它可以由一个非空字符串复制一次得到。 思路 神奇构造题。 考虑复制,再看到字符串长度是字符数的两倍,

  • P3747 [六省联考 2017] 相逢是问候2022-06-03 19:00:41

    Problem: 题目描述 Informatik verbindet dich und mich. 信息将你我连结。 B 君希望以维护一个长度为 \(n\) 的数组,这个数组的下标为从 \(1\) 到 \(n\) 的正整数。 一共有 \(m\) 个操作,可以分为两种: 0 l r 表示将第 \(l\) 个到第 \(r\) 个数( \(a_l,a_{l+1} ...a_r\))中的每一

  • 洛谷P1656 炸铁路 (求割边)2022-06-03 12:02:06

    用tarjan变种求割边的模板题 其实还可以求出所有的边双(用栈),但本题不需要求。 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N=1e5+10; 4 int head[N],nxt[N<<1],to[N<<1],tot; 5 pair<int,int> edge[N]; 6 int dfn[N],low[N],top/*st[N]*/; 7 int cnt,i

  • P4690 [Ynoi2016] 镜中的昆虫2022-06-02 20:31:44

    P4690 [Ynoi2016] 镜中的昆虫 区间赋值区间数颜色,\(n \leq 10^5\),值域 \([1,10^9]\),要求线性空间。 sol 首先考虑经典数颜色套路,设 \(pre_i\) 表示上一个与 \(a_i\) 相同的数的位置。 对于区间赋值操作,我们发现性质:\(\forall i\in(l,r],pre_i ←i-1\),对于 \(i=l\) 或区间外的情况

  • CF1103C Johnny Solving 题解2022-05-30 11:34:58

    首先考虑建出 dfs 树,如果一个点的深度 \(\geq \frac{n}{k}\),那么直接输出这个点到根的路径即可。 如果没有点深度 \(\geq \frac{n}{k}\),可以证明这棵树一定有不少于 \(k\) 个叶子(考虑反证法,如果叶子个数少于 \(k\),那么点数最多也不到 \(k\cdot \frac{n}{k}=n\) 不可能)。由于每个点

  • 平衡树 22022-05-26 12:31:45

    无旋Treap 点击查看代码 #include <bits/stdc++.h> using namespace std; const int o=2222222; struct Treap{ struct node{ int l,r; int size; int val; int k; }t[o]; int tot,root; int add(int x){ tot++;

  • cf1450 C1. Errich-Tac-Toe (Easy Version) / C2. Errich-Tac-Toe (Hard Version)2022-05-25 10:35:18

    题意: 给定一个棋盘,初始棋盘中的某些位置上有棋子,棋子有两种类型 'O' 和 'X' 要求改变一些棋子的类型,使得没有同类型的三个棋子在一行(或一列)连续。 改变的棋子数不能大于棋子总数的 1/3 下取整 Easy Version:初始只有 'X' Hard Version:初始两种类型都可能有 思路: 先按 \((i+j)\%3\)

  • 1239:统计数字2022-05-08 15:34:16

    1239:统计数字     using namespace std; int a[10001],n,js=1,tot=1; int main() { cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; sort(a+1,a+n+1); while(tot<=n) { int s=a[tot],k; k=tot; //保存为增值的tot w

  • 图论:P3387【模板】缩点 tarjan2022-05-08 10:31:20

    P3387【模板】缩点 题目传送门:P3387 【模板】缩点 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目:    题目思路:   把一个有环图转换成无环图,就是利用tarjan算法,求出强连通分量,利用一个标记数组,将第n组强联通分量都标记为n,然后清空邻接矩阵,利用标记数组重新建立邻接关系

  • F. MEX Queries - 线段树 + 离散化2022-05-03 12:35:21

    F. MEX Queries 题意 1 l r 将区间l r 置 1 2 l r 将区间l r 置 0 3 l r 翻转区间l r(即 是1置0 是0置1) 求每次操作后值是0的最左位置编号 思路 用线段树维护 区间和 用一个lazy 标记当前结点 置1 置0 翻转 或者 无需操作(用于减少时间复杂度) 对于翻转操作 每次更新一个结点的lazy要

  • cf1458 B. Glass Half Spilled2022-04-26 14:02:52

    题意: n 个杯子,每个杯子容量为 ai,装有水 bi。可以进行任意次操作,每次从一个杯子往另一个杯子倒 x 的水,但一定会洒出 x/2。另外超过容量的会溢出。 现在对所有的 k=1,2,...,n,求 k 个杯子的最大水量。k 之间独立 \(n\le 100, a_i,b)i\le 100\) 思路: \(f(k,c)\) 表示不进行操作,k 个杯

  • 手写堆(优先队列),手写hash2022-04-18 00:36:47

    1 struct rec { 2 int a, b; // 两个变量,其中a>=b 3 int val, cnt; // 未来估价val,当前次数cnt 4 rec() {} 5 rec(int a_, int b_, int val_, int cnt_) { 6 a = a_, b = b_, val = val_, cnt = cnt_; 7 } 8 }; 9 int n; 10 const int N =

  • dls的数据结构-笛卡尔树,st表,带权并查集2022-04-14 13:00:06

    笛卡尔树 #include<bits/stdc++.h> using namespace std; typedef long long LL; const int N = 1e6+10; int ans[N], tot; // a存放原序列,top从0开始,右边闭区间 // 建立区间最小值笛卡尔树 // 根节点是stk[1] int stk[N], top, a[N], l[N], r[N]; int n; void dfs(int

  • LOJ #6089. 小 Y 的背包计数问题2022-04-09 22:00:19

    题面传送门 奇妙的思维(技巧?)题。 发现每个物品有\(i\)个,体积为\(i\),对于\(i>\sqrt n\)的物品来说,这个个数的限制是相当于没有的。所以相当于完全背包。 前面\(O(\sqrt n)\)个可以暴力多重背包算方案数。 考虑后面\(n\)个最多选择\(O(\sqrt n)\)个。所以可以设\(dp_{i,j}\)表示选

  • 洛谷P3381 (最小费用最大流模板)2022-04-04 15:01:20

    记得把数组开大一点,不然就RE了。。。 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define int long long 4 const int N=5e5; 5 const int M=5e5; 6 const int INF=0x3f3f3f3f; 7 8 int n,m,s,t,ans,d[N],maxflow; 9 int tot=1,adj[N],nex[M],to[M],cap[M],

  • 洛谷P2517 HAOI2010 订货 (费用流)2022-04-04 15:00:06

    标准的费用流问题,关键在于巧妙地建模 一共有n个月份,源点设为0,汇点设为n+1 1.源点向所有月份连边,容量为正无穷,费用为该月进货的费用 2.每个月向下一个月连边,容量为仓库容量,费用为存货费用 3.每个月向汇点连边,容量为该月卖货的数量,费用为0(卖货不会产生费用) 用最小费用最大流求解即可

  • 【JZOJ7521】嘉然2022-03-29 08:34:28

    【JZOJ7521】嘉然 by AmanoKumiko Description 嘉然今天吃欧拉函数 给出一个长为\(n\)排列\(p\) \(q\)组询问,每次给出一个\(l,r\),求\(\max_{l\le i<j\le r}φ(p_ip_j)\) Input 第一行一个整数\(n\) 然后一行\(n\)个整数读入\(p\) 第三个一个整数\(q\) 然后\(q\)行读入询问 Output

  • 后缀自动机简介与题目2022-03-26 08:01:55

    后缀自动机 内容来自 回文树 - OI Wiki (oi-wiki.com) ,题目来自 回文自动机の题单 - 题单 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) @ hyfhaha 。 部分题目解析直接抄的是洛谷题解 前言 和其他自动机类似,回文自动机也是由转移边和周骓链接(fail 指针)组成,每个节点都可以岱庙

  • 魔方2022-03-20 08:33:25

    题目描述 kid 走进了一个 nn 行 mm 列的矩阵,不保证矩阵中有 nn 个数字 11,nn 个数字 22,\dots… , nn 个数字 mm 但 n,mn,m 均为偶数。 现有两种改变矩阵的方式: 选择任意一行,将这一行上的数翻转; 选择任意一列,将这一列上的数翻转。 每次操作可以选择任意一种方式

  • 8.1 算法分析初步2022-03-10 16:04:11

    尽管直观,适用范围广,但枚举,回溯等暴力方法常常无法走出低效的阴影 越是通用的算法,越不能深入挖掘问题的特殊性 本章介绍一些经典问题的高效算法,由于是量身定制,这些算法从概念思路到程序实现都是千差万别的 本章开始,读者刚刚开始接触严肃的算法设计理论 算法分析初步所需要解决的问

  • analyze使用2022-03-09 23:32:48

    说明 analyze命令把每列信息写入到pg_statistic   测试 create table t1 (id int); insert into t1(id) values(1); analyze ​VERBOSE t1 1)执行第一次 rmgr: Heap len (rec/tot): 115/ 115, tx: 1101, lsn: 1/7F61E990, prev 1/7F61E958, desc: INSERT off 2, blkref #0: rel 16

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

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

ICode9版权所有