随笔分类 -  acwing刷题

摘要:图和树的存储使用邻接矩阵实现,其内部使用单向链表完成邻接矩阵的实现,我们使用h[N]表示头节点,使用e[M]表示第i个节点存的数值,使用ne[M]表示第i个节点所指向的下一个节点。 int h[N],e[M],ne[M],idx; void add(int a,int b){ e[idx]=b;ne 阅读全文
posted @ 2022-03-30 21:51 open520 阅读(29) 评论(0) 推荐(0)
摘要:宽度优先搜索 例题一(献给阿尔吉侬的花束) 阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫。 今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的奶酪。 现在研究员们想知道,如果阿尔吉侬足够聪明,它最少需要多少时间就能吃到奶酪。 迷宫 阅读全文
posted @ 2022-03-30 19:53 open520 阅读(129) 评论(0) 推荐(0)
摘要:深度优先搜索(DFS) 例题一(指数型枚举) 把 1∼n 这 n 个整数排成一行后随机打乱顺序,输出所有可能的次序。 输入格式 一个整数 n。 输出格式 按照从小到大的顺序输出所有方案,每行 1 个。 首先,同一行相邻两个数用一个空格隔开。 其次,对于两个不同的行,对应下标的数一一比较,字典序较小的 阅读全文
posted @ 2022-03-30 19:52 open520 阅读(44) 评论(0) 推荐(0)
摘要:题目 一个鲜为人知的事实是,奶牛拥有自己的文字:「牛文」。 牛文由 26 个字母 a 到 z 组成,但是当奶牛说牛文时,可能与我们所熟悉的 abcdefghijklmnopqrstuvwxyz 不同,她会按某种特定的顺序排列字母。 为了打发时间,奶牛 Bessie 在反复哼唱牛文字母歌,而 Farm 阅读全文
posted @ 2022-03-28 22:36 open520 阅读(74) 评论(0) 推荐(0)
摘要:背包问题 01背包 给定的物体只有0个和1个,只有选与不选的划分,其状态转移方程时由i-1行推出,所以第二层循环是由j=m,递减到v[i]的。 for(int i=1;i<=n;i++){ for(int j=m;j>=v[i];j--){ f[j]=max(f[j],f[j-v[i]]+w[i]) 阅读全文
posted @ 2022-03-25 09:12 open520 阅读(40) 评论(0) 推荐(0)
摘要:多重背包优化做法(通过分组打包捆绑将多重背包转换成01背包,通过二进制优化) 有 N 种物品和一个容量是 V 的背包。 第 i 种物品最多有 si 件,每件体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。 输出最大价值。 输入格式 第一行两个整数 阅读全文
posted @ 2022-03-25 09:06 open520 阅读(31) 评论(0) 推荐(0)
摘要:朴素做法(无优化版) 有 N 种物品和一个容量是 V 的背包。 第 i 种物品最多有 si 件,每件体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。 输出最大价值。 输入格式 第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。 接下 阅读全文
posted @ 2022-03-25 09:03 open520 阅读(39) 评论(0) 推荐(0)
摘要:###求一个数的位数 引用math函数,使用log10求一个数的位数 int d=(floor(log10(n)+1)); 一般方法 int d=0; while(n){ d=d/10; d++; } ###求一个大数的阶乘的位数 蒜头君对阶乘产生了兴趣,他列出了前 1010 个正整数的阶乘以及对应 阅读全文
posted @ 2022-03-23 22:06 open520 阅读(83) 评论(0) 推荐(0)
摘要:有 N 种物品和一个容量是 V 的背包,每种物品都有无限件可用。 第 i 种物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出最大价值。 输入格式 第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。 接下来有 N 行,每 阅读全文
posted @ 2022-03-22 18:06 open520 阅读(21) 评论(0) 推荐(0)
摘要:有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出最大价值。 输入格式 第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。 接下来有 N 行,每行 阅读全文
posted @ 2022-03-22 17:21 open520 阅读(26) 评论(0) 推荐(0)
摘要:地图上有 N 个目标,用整数 Xi,Yi 表示目标在地图上的位置,每个目标都有一个价值 Wi。 注意:不同目标可能在同一位置。 现在有一种新型的激光炸弹,可以摧毁一个包含 R×R 个位置的正方形内的所有目标。 激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆炸范围,即那个正方形的边必须和 x 阅读全文
posted @ 2022-03-21 21:25 open520 阅读(32) 评论(0) 推荐(0)
摘要:十六进制是一种基数为 16 的计数系统,是一种逢 16 进 1 的进位制。 通常用数字 0、1、2、3、4、5、6、7、8、9 和字母 A、B、C、D、E、F 表示,其中: A∼F 表示 10∼15,这些称作十六进制数字。 观察这些数字的图案,我们可以发现,有些数字上面包含圈圈,具体来说: 数字 0 阅读全文
posted @ 2022-03-21 16:33 open520 阅读(72) 评论(0) 推荐(0)
摘要:第一题 费解的开关 你玩过“拉灯”游戏吗? 25 盏灯排成一个 5×5 的方形。 每一个灯都有一个开关,游戏者可以改变它的状态。 每一步,游戏者可以改变某一个灯的状态。 游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。 我们用数字 1 表示一盏开着的灯,用数字 0 阅读全文
posted @ 2022-03-20 18:47 open520 阅读(48) 评论(0) 推荐(0)