- 2024-08-28基于PSO粒子群算法的三角形采集堆轨道优化matlab仿真
1.程序功能描述假设一个收集轨道,上面有5个采集堆,这5个采集堆分别被看作一个4*20的矩阵(下面只有4*10),每个模块(比如:A31和A32的元素含量不同),为了达到采集物品数量和元素含量的要求(比如:需采集5吨和某元素单位质量在65与62之间),求出在每个4*20的矩阵中哪个模块被拿出可以达到要求
- 2024-08-23P9640 [SNCPC2019] Digit Mode
思路:定义\(F(l,r)\)表示若已经确定了\([1,l-1]\)的数,且\([l,r]\)没有限制的贡献数。设\(n\)的长度为\(len\),考虑先求出\([1,i](i\lelen-1)\)的贡献(是没有限制的),那么每次枚举第\(1\)位数字\(a_1\in[1,9]\),算上\(F(2,i)\)的贡献即可。则该情况贡献和为:\[\su
- 2024-08-19P5221 Product
P5221Product求\(\prod_{i=1}^N\prod_{j=1}^N\frac{lcm(i,j)}{gcd(i,j)}\(\bmod\104857601)\)如果是上下同时除gcd的话会发现有点困难,但是如果上下同时乘一个gcd,会发现上面变得非常简单。我们要求的就是分母\(\prod_{i=1}^N\prod_{j=1}^N{(i,j)^2}(\bmod\104857601)\)直
- 2024-08-18CF1946E Girl Permutation
中文题面:https://www.luogu.com.cn/problem/CF1946E先考虑只要求前缀最大值怎么做。从前往后很容易想到\(O(n^3)\)的dp,用前缀和优化可以到\(O(n^2)\).注意相对顺序,\([p_i,p_{i+1}-1]\)选择的数,必须让最大的放在最前面才合法。比如选1,3,9,在[5,8]这个区间,只有9,1,3和9,3,1是合法
- 2024-08-14CF1523E Crypto Lights
小清新Counting,被徐神绝杀力直观地想我们需要求出恰好\(m\)轮结束的概率\(p(m)\),但这个显然不好直接求,我们退而求其次用经典trick,我们设\(f(m)\)表示至少点亮了\(m\)盏灯的概率,最后求和得到的就是带权的概率和也就是期望考虑\(f(m)\)如何计算,转为计算合法局面的方案
- 2024-08-13Python网页应用开发神器fac 0.3.0全新版本发布
大家好我是费老师,在Python生态中,有很多以Python为主要开发语言,实现网页应用开发的框架,其中最为知名的有Dash、flet、streamlit、gradio、nicegui等。如果综合考虑流行度、开发效率、开发自由度、相关生态成熟度、可拓展性、安全性等各方面的能力,Dash是其中天花板级别的存在,这也是
- 2024-08-03五一培训第二天
一素数今天先来回顾一下之前学过的素数(质数),当n是质数时,以下两个式子,至少有一个是成立的1.a的d次方%n==12.存在一个i,0<=i<r,a的d乘2的i次方的次方%n==n-1那我们怎样用它判断素数呢?如果\(n\)为质数---\(a\)---一定成立如果\(n\)为合数---\(a\)---
- 2024-07-22牛客周赛52
小红的最大字典 编辑思路:使用优先队列进行多路归并#include<bits/stdc++.h>#defineintlonglong#definexfirst#defineysecond#defineendl'\n'#definepqpriority_queueusingnamespacestd;typedefpair<int,int>pii;voidsolve(){ priority_q
- 2024-07-22P6475 [NOI Online #2 入门组] 建设城市
P6475[NOIOnline#2入门组]建设城市传送门分类讨论:设\(f(x,y)\)为\(C^{j-1}_{i+j-1}\)\(x,y\)在同一旁把\(x,y\)之间的看成一个高楼公式\(f(n,m)\timesf(n+x-y,m)\)\(x,y\)在异侧枚举\(x,y\)高楼的高度\(h\)\(\displaystyle\sum^{n}_{i=1}f(x-1,i)*f(n-x,m-i
- 2024-07-20CF140E New Year Garland
题意有\(m\)种小球,用这些小球装饰一棵\(n\)层的圣诞树,每层需要放置\(a_i\)个小球。在每一层中,相邻球颜色不同,且相邻两层球颜色集合不同,求装饰圣诞树的方案数,答案对\(p\)取模。\(1\len,m\le10^6,2\lep\le10^9,1\lea_i\le5000,\sum_{i=1}^na_i\le10^7\qquad\tex
- 2024-07-06[AGC064D] Red and Blue Chips 题解
题目链接点击打开链接题目解法挺牛的题这种计数本质不同的结果的题,一个很不错的切入口是判断结果的合法性令B的总数为\(m\)我们把结果串先挂在第\(m\)个B上考虑从后往前枚举原串(最后一个B不枚举),相当于我们在倒序模拟操作过程枚举到B,我们相当于要把后面的一个B
- 2024-06-22[题解]AT_abc151_e [ABC151E] Max-Min Sums
思路考虑将\(\max\)和\(\min\)的贡献分开计算。显然我们对这个序列进行一次排序不会影响最终的答案,因此我们可以先排序一下。然后有一个很经典的trick,就是你枚举每一个数\(x\),将\(x\)令为最大值(最小值)。因为我们先前排序过一次,因此我们可以轻易的计算出比\(x\)小(大)的
- 2024-06-20【题解】P6323 | 容斥 分拆数
本题存在低于\(O(nc)\)的做法。逆序对是大小关系,我们在小的那个数处统计每对逆序对,考虑从大到小插入每一个数,这样所有数都比他大,这样它插入在第\(i\)个就会产生\(i\)个逆序对,假设现在有\(x\)个数则它可以产生\([0,x]\)中个逆序对,且每种都恰好有一种插法。那么我们现在
- 2024-05-26CF1089I Interval-Free Permutations
标签:析合树析合树就是用来处理这一种值域连续段的问题的。OI-wiki上对于析合树的讲解。我们回顾一下题目,要求不存在长度为\([2,n-1]\)之间的连续段,换句话说,就是根节点下恰有\(n-1\)个节点,且没有任何一个字段是题目中要求的连续段。我们记这样的答案为\(A_n\)也就
- 2024-05-22P2606 [ZJOI2010] 排列计数
P2606[ZJOI2010]排列计数树形dp序列中每个位置的限制只有另外一个位置,那么我们将这样的限制连线,就可以得到一棵树。在这题中,这棵树刚好是小根堆,一棵完全二叉树。题目就转化为一共有多少种小根堆。那么显然的\(a_1=1\),然后左子树和右子树分剩下的\([2,n]\),并且左右子树不互
- 2024-05-20CSP历年复赛题-P1009 [NOIP1998 普及组] 阶乘之和
原题链接:https://www.luogu.com.cn/problem/P1009题意解读: 利用高精度计算阶乘之和,需要用到高精度乘法(高精度乘低精度)、高精度加法。 首先,思考不利用高精度如何解题,直观方法就是遍历i从1到n,每次乘i得到i的阶乘,然后累加到结果,代码如下:#include<bits/stdc++.h>usingnam
- 2024-04-30CF1765C Card Guessing 题解
考虑期望的线性性,求每种情况猜对的概率和,最终再除掉\({4n\choosen,n,n,n}\)。考虑枚举最少的出现次数\(mn\),记四种卡的出现次数分别为\(c_1,c_2,c_3,c_4\),\(c_1+c_2+c_3+c_4=i\lek\),则这种情况的方案数为:\[{i\choosec_1,c_2,c_3,c_4}{4n-i\choosen-c_1,n-c_2,n-c_3,n-c_
- 2024-04-292015 ACM ICPC Singapore Regional D(折半枚举+二分)
D-AssociationofComputerMaintenance题意给定至多350个小于100的质数,对于所有质数之积k将它分解为两个数a和b使得a*b=k。输出最小的a+b,并对1e9+7取模分析首先考虑想如果想让a+b最小,即让abs(a-b)最小。随后根据限制条件k的因子数不超过1e10,容易想到将k拆分成k1和k2,此
- 2024-04-18[题解]ABC282E Choose Two and Eat One
ABC282EChooseTwoandEatOne又一个图论的回顾——Kruskal最小(最大)生成树算法。看到\(n\)的范围只有\(500\),应该没有什么特别的算法。那么我们考虑建一个*\(n\)个顶点的完全图,节点\(x\)到节点\(y\)的边权值就是\(x^y+y^x\)。然后跑一遍最大生成树,得到的和就是最大结果了。如
- 2024-04-07【思维专练】专题训练 1
前言思维训练1,几乎没有什么算法,枚举or搜索or二分CF1681DRequiredLength\(\mathtt{TAGS}\):暴搜+剪枝前置函数下文中称:\(len(x)\)为\(x\)十进制下的位数。First.为什么是搜索开始看到这道题想到了贪心:每次找出最大的一个数乘上去。但是很显然:可以先乘一
- 2024-04-07Codeforces 1906H Twin Friends
考虑到\(N\)的字符组成其实是固定的。所以可以把方案数拆为\(A\)的方案数\(\times\)\(A,B\)相匹配的方案数。对于\(A\)的方案数,就是多重集组合数,为\(\dfrac{n!}{\prod\limits_{i=0}^{25}(cnt_{A,i}!)}\)。接下来考虑求解\(A,B\)相匹配的方案数。考虑到对于
- 2024-04-062024.4.6 组合数学补题
CF128CGameswithRectangle个人认为突破点是“严格包含”,一开始没注意严格不知道怎么处理。严格的话就是横竖分别在若干条边中,分别选出2k条边。横竖互不影响可以乘法原理,只考虑一个方向即可。#include<iostream>#include<cstdio>#include<algorithm>#definemaxn10000
- 2024-04-04CF1924D Balanced Subsequences 题解
先判掉\(k>\min(n,m)\)的情况。首先有个明显的计算最长合法括号子序列的贪心方法:初始一个值为\(0\)的计数器,从左到右枚举每个字符,遇到(时将计数器加一,遇到)时如果计数器不为\(0\)就减一然后将答案加一。考虑绘制它的折线图。初始时纵坐标为\(0\),从左到右枚举每个字符
- 2024-03-31CF1942E Farm Game 题解
我们先默认第一头牛是John的,另一种情况本质相同,最后答案乘上\(2\)就可以了。先说结论:我们将相邻两头牛配对,那么最终答案即满足至少一对牛间隔了奇数个空位的方案数。证明很简单,分\(3\)种情况讨论:每对牛间都间隔了奇数个空位。那么John开始时让所有牛往右行动,在Nhoj行
- 2024-03-23CF1946E 题解
Blog赛场上差一点做出来。首先发现左右两部分是比较独立的,所以可以分开计算后合并。注意到我们可以把整个数集分成左右两部分,即\(\binom{n-1}{p_{m1}-1}\)。然后我们不妨只考虑左边。发现左边的最大值也已经确定,且最大值右边的所有数可以随便选,即\(\binom{p_{i+1}-