ICode9

精准搜索请尝试: 精确搜索
  • SD/XOI 2022 多边形2022-05-21 01:31:17

    首先我们考虑不重不漏地统计这个事情,这个题事实上是凸多边形划分的一个拓展,传统的凸多边形剖分方案数就是卡特兰数。 那么这里的区别就是: 在一条边上的点不能相互连线段 在边中间上的点可以没线段 不妨考虑我们手动枚举了一些中间点完全不连边,剩下 \(m\) 个点要连边,如果我们直接

  • P8290 [省选联考 2022] 填树2022-05-20 22:00:34

    先考虑第一问: 令 \(V_k(L)\) 为权值在 \([L,L+k]\) 中的答案。 注意到当极差为 \(d\) 时贡献会计算 \(k-d+1\) 次,利用这个特点答案可以表示为 \(\sum_{L}V_k(L)-V_{k-1}(L)\) , 下面不妨省去 \(k\)。 一条路径上的 \(V\) 为所有结点 \(V_i\) 的积,我们单独考察一下: \[V_i(L)=\max(0

  • [ZJOI2008] 骑士2022-05-20 20:31:07

    P2607 [ZJOI2008] 骑士 思路 显然抽象成图, 由每个骑士向他最讨厌的骑士 每个节点对应一条边, 即 \(n\) 个节点, \(n\) 条边, 并且没有说任意两点相联通, 所以是基环森林. 那么很容易就能想到基环树形dp 状态 显然对于每个节点有两种选择 选( \(1\) ) 不选( \(0\) ) 很容易设计:

  • 组合意义天地灭,代数推导保平安2022-05-20 19:02:52

    也算是开一个新坑?毕竟已经退役了,哪天兴趣来了可能也会点开一些题目看看,这里记录一下那些通过完全不带脑子的代数推导来AC的题目。 #2833. 「JOISC 2018 Day 1」帐篷 首先根据题意,不难去发现有一个 \(O(n^3)\) 的做法,即枚举有多少 \(1 \times 2\) 的,有多少 \(2 \times 1\) 的,以及

  • For循环中,只能`i++`或者`++i`吗?2022-05-20 17:02:38

    首先看这样一段代码。 运行后在页面显示是这样的。 但是我想一次性+2,而i++只能累加1,于是我改成了这样。 var count=0; var count1=1; for(var i=1;i<=99;i+2){ count+=i; } document.write("1~99中的奇数的和是"+count); 但是浏览器的状态一直刷新,没有内容。 很明显,这是死

  • 二分算法总结2022-05-20 16:32:37

    日期:2022年5月19日 注:本博客仅供参考   概念与基本思路 二分算法是一种在有序数组中查找某一特定元素的查找算法。查找过程从数组的中间元素开始:如果中间元素正好是要查找的元素,则查找过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而

  • R语言中如何读取列数不一致的数据框2022-05-20 13:32:32

      1、测试数据     2、读取数据 dir() dat <- read.table("a.txt", fill = T, header = F) ## 增加fill = T参数可以读取列数不一致的数据框 dat dat[dat == ""] = NA ## 将缺失值用NA补充 dat     3、简单处理(求第3行的和) dat sum(da

  • P3320 [SDOI2015]寻宝游戏 题解2022-05-20 12:34:37

    题面 需要动态维护一个点集的极小联通子图边权和。可以发现,将点集 \(\{a_i\}\) 中的点按照 dfs 序从小到大排序之后,\(dist(a_1,a_2)+dist(a_2,a_3)+\ldots+dist(a_{k-1},a_k)+dist(a_k,a_1)\) 恰好等于我们要维护的那个边权和的两倍。所以就开一个 set,在加入和删除的时候加上或删

  • 使用确认对话框控制循环2022-05-20 12:34:15

    import java.util.*; import javax.swing.*; class Main { public static void main(String[] args){ int sum = 0; //Keep reading data until the user answer No int option = JOptionPane.YES_OPTION; while(option == JOptionPane.YES_

  • P5904 [POI2014]HOT-Hotels 题解2022-05-20 12:33:19

    题面 原题 \(n\leq 5000\),加强版 \(n\leq 10^5\),实际上能做 \(n\leq 10^6\)。 长链剖分。做这种很多点满足限制的题,套路差不多。设 \(f_{u,i}\) 表示 \(u\) 子树内到 \(u\) 距离为 \(i\) 的点数,\(g_{u,i}\) 表示 \(u\) 子树内的点对 \((x,y)\) 数量,满足再加一个到 \(u\) 距离为 \(

  • P4127 [AHOI2009]同类分布 题解2022-05-20 12:00:07

    题面 罕见的数位dp好题。 首先感觉这个题想数位dp有点困难,很多东西都在变。注意到每个数位数字和其实最大也才一百多,考虑枚举这个和,统计被这个和整除且数位和等于这个和的数的个数就完事了。 点击查看代码 #include<iostream> #include<cstdio> #include<cstring> typedef long l

  • 求 1!+2!+3!+....+n!的和2022-05-20 00:32:09

    // 求 1!+2!+3!+....+n!的和 function sum(num) { // 定义变量,用于保存结果 var ans = 1 var sum=0 for (var i = 1; i <= num; i++) { // ans是每一次的阶层值 ans= ans * i // sum 保存总的阶层和 sum+=ans } console.log

  • 【学习笔记】莫比乌斯反演2022-05-19 19:31:27

    这东西是真的神奇,但是稍微熟悉了之后就感觉没啥了 莫比乌斯函数 定义 我们通常记 \(\mu(x)\) 为莫比乌斯函数 \[\mu(x) = \left\{ \begin{aligned} &1 &&x=1 \\ &0 &&x 含有平方因子 \\ &(-1)^k &&k为本质不同的 x 的质因子的数量 \\ \end{aligned} \right. \]我们先不用考虑这东

  • LeetCode 202. Happy Number2022-05-19 09:34:50

    LeetCode 202. Happy Number (快乐数) 题目 链接 https://leetcode.cn/problems/happy-number/ 问题描述 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1,也可能

  • [luogu8341]回忆2022-05-19 08:35:40

    考虑将所有极深的$t$配对,表示选择对应的路径(要求经过$1$) 具体的,假设$1$的儿子子树内分别有$a_{1},a_{2},...,a_{k}$个$t$,对其分类讨论: 1.若$2\max a_{i}\le \sum a_{i}$,则可以配成$\lceil\frac{\sum a_{i}}{2}\rceil$对(归纳证明),且取到答案下限 2.若$2\max a_{i}>\sum a_{i}$,则可以

  • LeetCode 0129 Sum Root to Leaf Numbers2022-05-19 08:02:42

    原题传送门 1. 题目描述 2. Solution 1 1、思路分析 DFS,从根结点开始,遍历每个结点,如果遇到叶子结点,则将叶子结点对应的数字加到数字之和。如果当前不是叶子结点,则计算其子结点对应的数字,然后对子节点递归遍历。 2、代码实现 package Q0199.Q0129SumRoottoLeafNumbers; import

  • P4175 [CTSC2008]网络管理 题解2022-05-18 20:32:43

    题面 比较经典的带修树上第 \(k\) 大问题。通常的做法是树剖树套树然后树上二分,一般3到4个 \(\log\)。这个题还可以用整体二分解决。 思考一下这道题目的整体二分过程:二分一个答案 \(mid\),把所有的 \(>mid\) 的修改放到一个数据结构里,然后查询树上路径和。这显然可以使用树剖+线段

  • CF708E Student's Camp 题解2022-05-18 18:35:54

    状态优化+前缀和优化 Statement 有一个 \((n+2) \times m\) 的网格。 除了第一行和最后一行,其他每一行每一天最左边和最右边的格子都有 \(p\) 的概率消失。 求 \(k\) 天后,网格始终保持连通的概率。 \(n,m \le 1.5 \times 10^3\),\(k \le 10^5\),取模 \(10^9+7\)。 Solution 首先应该

  • 1281. Subtract the Product and Sum of Digits of an Integer2022-05-18 01:02:55

    !!!题目地址!!! int subtractProductAndSum(int n){ int product = 1; int sum = 0; while(n != 0){ product *= n%10; sum += n%10; n /= 10; } return product-sum; }

  • javase第四天2022-05-17 23:34:30

    递归:调用自身 相同数据类型 有序集合 数组类型   数组名字 = 值 int[]  nums = {1,2,3,4,5,6}       数组长度固定,一旦被创建,大小不允许改变。 数组下标从零开始 java的方法类似于其他语言的函数 public class ArrayDemo01 { public static void main(String[] args)

  • [leetcode] 1. Two Sum2022-05-17 20:01:12

    题目 Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input would have *exactly* one solution, and you may not use the same element twice. You can return the a

  • cf1628 D1. Game on Sum (Easy Version)2022-05-17 19:33:02

    题意: 初始 \(ans=0\),进行 n 个回合的游戏。每个回合先由 Alice 选一个 \([0,k]\) 之间的实数,然后 Bob 让 ans 加上或减去这个实数。Alice 想最大化 ans,Bob想最小化 ans。Bob至少要 “加” m 次 ans 最后会是一个定值。输出最终的 ans \(1\le m\le n\le 2000\) 思路: \(f(n,m)\) 表

  • matlab实验62022-05-17 15:32:41

      1. a=randn(10,5)+10; ma=max(max(a)) mi=min(min(a)) s=sum(a,2) sa=sum(sum(a)) P=sort(a) p1=sort(-a,2) 2. n=(1:10).^2;f=sqrt(n);interp1(n,f,(1:100),'cubic') 3. n=6:2:18;f1=[18 20 22 25 30 28 24];f2=[15 19 24 28 34 32 30];r=6.5:2:17.5;w=interp1(n

  • 线段树2022-05-17 00:04:31

    线段树 区间加,区间和 #include <iostream> #include <cstring> using namespace std; typedef long long ll; const int N = 1e5 + 10; ll w[N]; struct Node { int l, r; ll add, sum; }tr[N*4]; int n, m; void pushup(int u) { tr[u].sum = tr[u <&l

  • CF EDU 113 D - Inconvenient Pairs2022-05-16 22:03:17

    D - Inconvenient Pairs 思维 不方便的点对就是类似于,这种在同一行块或同一列块的两个点,他们的距离一定大于曼哈顿距离 其中红色为横向点对,紫色为纵向点对 所以可按 y 递增排序,找到每一个行块有多少个点,这一行块中的点对贡献为:\(\binom {cnt}2-\sum\binom {同一列的点的数量}2\)

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

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

ICode9版权所有