- 博客(12)
- 收藏
- 关注
原创 ACM-ICPC 2018 焦作赛区网络预赛 K.Transport Ship(01背包求方案数)
样例输入11 22 112样例输出01题意: 有n种船,第i船能载v[i]重量的货物,有(2^c[i])-1 艘第i种船,有q个询问 每个询问问你正好装s重量的货物的方案数(每艘船要装满)思路:题目中 每种船的个数是关键。 对于 (2^c[i])-1 艘船 可以分为 2^0+2^1+2^2+...+2^(c[i]-1) 如果我们将每项分开当成...
2018-09-16 21:39:12
210
转载 HDU 6407 Pop the Balloons (状压dp + 剪枝 。。。 结果大数 int128就行 )
具体 看代码吧:#include <bits/stdc++.h>using namespace std;#ifdef __LOCAL_DEBUG__# define _debug(fmt, ...) fprintf(stderr, "\033[94m%s: " fmt "\n\033[0m", \ __func__, ##__VA_ARGS__)...
2018-08-15 21:31:22
390
转载 HDU - 6363 bookshelf (数论+莫比乌斯反演)
数学题 我不会 我不会 莫比乌斯反演 啥玩意 嘤嘤嘤 题意: 把n本书放到k层的书架上,每一层的美丽值为bi=2^f[cnt]−1,其中cnt是这一层书的数量,f[x]为斐波那契数列,整个书架的美丽值为gcd(b1,b2,...,bk),问整个书架的美丽值的期望思路: 什么数论结论 简单可得 我怎么什么都不知道 如何求f(g) 一开始的...
2018-08-14 21:05:29
270
原创 hdu 6386 Age of Moyu (求最短路 优先队列)
题意:有n个点m条边 n个点编号为1~n 每条边都有一个值 从一条边到另一条边,如果两边的指不同 花费就要+1,如果相同就不需要花费。 先从1走到n问最小花费是多少。(一开始从点1出来花费都为1)思路:总体而言是求最短路 然而普通的最短路在这里无法计算距离。 那么就用set【i】记录 当前到i这个点路径最短时 连向i的边有哪些 (因为可能有多种方案 到i 路径...
2018-08-13 21:50:45
289
1
原创 牛客多校第七场 J Sudoku Subrectangles (简单题 暴力题)
真羡慕两题的 题意 :给你一个n*m的矩阵 由大小写字母构成 先让你找出子矩阵的个数 满足 子矩阵每行的字母都不同 每列的字母都不同 题解:简单题就简单题吧 反正我没写出来 哼 最暴力的做法 乍一看是 n*n*m 暴力找子矩阵的第一行行 for最后一行的位置,然后对每一列进行判断 因为只有52个字母 那么子矩阵的高度不会超过52 那么...
2018-08-09 21:30:15
240
原创 HDU 4417 Super Mario (可持久化线段树)
题意:马里奥顶砖块游戏 一条长为n的路 有n个砖块 给你n个砖块的高度 现有m个询问 每个询问为 l,r,h 表示在【l,r】这段路上 最高能跳h高 时能顶多少个砖块思路:可持久化线段树 模板题 以每个高度建线段树 (要离散化) 以路上的位置为时间 将每个位置 单点更新 用size【i】记录这段上的点的个数 最后区间查询 1~h(此处h为 第一个小...
2018-08-07 18:34:17
179
原创 hdu 6356 Glad You Came ST表求RMQ(此处为倒过来的st表)
题意: 有个长度为n的数组,初值全为0. 现有m次操作 每次操作使用题目中的RNG61函数 3次 得到三个数 f1,f2,f3 接着 令 l=min((f1%n)+1,(f2%n)+1); r=max((f1%n)+1,(f2%n)+1); v=f3%(1<<30);将数组中【l,r】范围内小于v的数全改为v思路: 基本上是区间更新然后单点查询 线...
2018-08-06 21:11:17
173
原创 牛客多校第六场 C Generation I (简单排列组合)
输入:22 23 4输出:Case #1: 4Case #2: 52题意:有 n个不重复集合 也就是set 标号为1~n 现有m个数 现有n个操作 第i次操作可以从 1到m中 选一个数 插入到 i~n的所有集合 问 n次操作后 有多少种不同的情况 (两种不同的情况 为 存在 同一标号的 两个set不同 )题解:因为填一次数字 是把第i位之后的所有...
2018-08-04 21:23:44
328
原创 牛客多校第六场 J Heritage of skywalkert 简单题
题意 :每次运行上述的函数可获得一个数,让你从运行n次函数后得到的n个数中 求随便两个数的lcm 输出其中的最大值思路:这个数看起来像是随便生成的 那么我们就取其中前100个最大的数 暴力求出最大lcm即可。 愚蠢的我不知道unsigned 如果超出范围不会变负数 无符号数超出位数的部分就不要 好吧 我第一次用 unsigned 根本不知道啥玩意。 前1...
2018-08-04 20:53:06
167
翻译 hdu 6333 Harvest of Apples 莫队
题意: 给你一个n,m 让你求C(n,0)+C(n,1)+...+C(n,m) 的值一开始直接想到二项式方程 但发现2^n=C(n,0)+C(n,1)+...+C(n,n) 没什么用后来发现队友开始吹 发现 用s(n,m)表示C(n,0)+C(n,1)+...+C(n,m) 那么s(n,m)=2*s(n-1,m)-c(n-1,m);s(n,m)=s(n,m-1)+c(...
2018-08-01 20:14:25
147
翻译 快速幂
很难受,今天遇到快速幂居然不知道怎么写。int quaisu(int a,int b)//a的b次方{ int r=1,base=a; while(b) { if(b&1) r*=base; base*=base; b>>=1; } return r;}
2017-12-29 18:59:07
114
原创 01背包
今天重新复习了一下动态规划,先从最简单的01背包开始01背包的思路是dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+c[i]);其中i表示第几个物品,j表示现在装了多重的物品,dp表示此时的价值。由此即可得到其代码#include#include#includeusing namespace std;int n,v;int main(){
2017-12-29 18:57:21
158
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人