首页 > TAG信息列表 > 紫书

一句话紫书简单题

自己没办法独立想出来的会打* 思维训练以及算法巩固都是很重要的。 UVA11054 一眼网络流。 看 \(a\) 看着很难受,先取反,这样变成了 \(a>0\) 就有 \(a\) 的酒要给出,反之就是要收到 \(-a\) 的酒。 左右运输通常不大好搞,考虑能否都换成从左到右,若 \(i<j\),且 \(i\) 要运到 \(j\),即可以

紫书学习 10.数学概念与方法--递推和计数问题

紫书给出了三个非常经典的递推模型。 汉诺塔问题 要求将A杆子的圆盘全部移到B杆子,并保持同样的叠放顺序。 要求: 每次只能移动顶部的盘子。 圆盘可以插在任一杆子上。 任何时刻都不能把小盘放在大盘上面。 求移动需要的步数。 解法: 假设移动n个盘子的方案是\(f(n)\),要把n个盘子

紫书学习 10.数学概念与方法--递推和计数问题

紫书给出了三个非常经典的递推模型。 汉诺塔问题 要求将A杆子的圆盘全部移到B杆子,并保持同样的叠放顺序。 要求: 每次只能移动顶部的盘子。 圆盘可以插在任一杆子上。 任何时刻都不能把小盘放在大盘上面。 求移动需要的步数。 解法: 假设移动n个盘子的方案是\(f(n)\),要把n个盘子

紫书学习 10.数学概念与方法--离散概率基础

古典概型及其应用 古典概型满足有限性和等可能性,常见的模型是抛硬币。 不求同年同月同日生 有n个人,求至少有两个人生日相同的概率。 每个人的生日有365种可能,因此样本的容量是\(365^n\)。 可以想到暴力的统计方法,恰好两人生日相同、恰好3人....恰好n人生日相同,相加即可,这样比较麻

紫书学习 10.数学概念与方法--计数问题基础

基本计数原理 加法原理:做一件事情有n种办法,每种办法有pi种方案。 乘法原理:做一件事有n个步骤,每个步骤有pi种方案。 容斥原理:要计算一些互不独立的集合的并集,需要用到容斥原理。 比如求三个集合并的元素个数: \[|A\cup B \cup C|=|A|+|B|+|C|-|A\cap B|-|A\cap C|-|B\cap C|+|A\cap

紫书习题3-6纵横字谜的游戏

题目:https://www.luogu.com.cn/problem/UVA232 看题目直接点链接 。。想了好多办法结果都有问题,在这张的题里面主要用数组,,思维太差了。。 #include<iostream> #include<cstring> using namespace std; // 行号,列号,样例号,字母序号,行下标,列下标,用于临时遍历的列下标,上一个单词

紫书uva 814传输代理的交互

# include<iostream> # include<map> # include<set> # include<string> # include<vector> using namespace std; void parse_add(const string& s, string& user, string& mta)//对数据进行处理的函数 {     int k = s.find('@')

紫书第十章(10.2.3)编码与解码 ---Password(暴力枚举)

题意: 给两个6行5列的字母矩阵,找出满足如下条件的“密码”:密码中的每个字母在两个矩阵的对应列中均出现。给定k(1<=k<=7777),你的任务是找出字典序第k小的密码。如果不存在,输出NO。 思路: 因为k<=7777所以直接dfs从最小的开始找即可. char ch[2][6][5], ans[maxn]; ll cnt, k, n, m,t

UVA - 1393 Highways (和紫书不一样的解法)

题目链接 题解: 由于我的方法和紫书不一样,所以专门写一下记录一下解题思路。 显然“\”和“/”两个方向的直线数量是相同的,所以我们考虑计算“/”方向的线的数量。 统计类问题,都需要找到合适的分类方法,使我们能够不重复、不遗漏的统计出所有情况。 本题我们以直线的起点分类,把直

紫书 防线 UVa1471

以下参考自刘汝佳老师代码,使用了stl中的set,set集合不会插入的重复元素 #include<cstdio> #include<set> #include<cassert> using namespace std; const int maxn = 200000 + 5; int n, a[maxn], f[maxn], g[maxn]; struct Candidate { int a, g; Candidate(int a, in

紫书第八章竞赛题目

抄书(Copying Books, UVa 714) 题目链接 输入输出 第一行代表有n组数据,以下n组数据每组两行,第一行是m和k,第二行的m个数是序列。 对于每组输入,输出最优的划分方式。 Sample Input 2 9 3 100 200 300 400 500 600 700 800 900 5 4 100 100 100 100 100 Sample Output

紫书第八章例题笔记

煎饼(Stacks of Flapjacks, UVa120) 题目链接 有一叠煎饼正在锅里。煎饼共有\(n(n≤30)\)张,每张都有一个数字,代表它的直径大小,如图8-11所示。flip(k)操作可以把铲子插到倒数第k张煎饼下面,并且翻转铲子上面所有的煎饼。例如,图8-11(a),依次执行操作flip(3),flip(1)后得到图8-11(c)的情况。

UVa1609 Foul Play 不公平竞赛 (直接构造法)紫书训练

题意: n支队伍打淘汰赛,每轮都是两两配对,胜者进入下一轮。 每支队伍的实力固定,并且已知每两支队伍间的比赛结果(不可能为平局,则一定有一方打败另一方),你喜欢一号队,但是一号队不一定是最强的,但是他可以直接打败其他队伍中的至少一半,并且对于每支一号队不能打败的队伍t,总是存在一支

紫书UVa1596

#include <vector> #include <map> #include<algorithm> #include<cmath> #include<set> #include<cstdio> #include <sstream> #include <string> #include<iostream> #include<iomanip> #include<stack>

UVa,1339(紫书)==========简单题,但是读不懂题的话,就凉凉了

这个题我本来看错意思了。 我以为,他所谓的替换规则(substitution) 一定是  B-->A,,,,,以此类推。 但是,通过样例我们发现,替换规则并不是这样。。。。 最大的感受就是,英语很重要,要在平时的练习中逐渐适应读英语。 #include<iostream> #include<algorithm> #include<stack> #in

紫书训练 7.15

https://vjudge.net/contest/311225#overview 点分治+FFT 密码:996996 A - 聪聪可可  用q[0],q[1],q[2],分别表示距离%3的个数,那么就可以通过calc算出来了。 #include<bits/stdc++.h> #define il inline #define pb push_back #define fi first #define se second #define ms

UVA 133“The Dole Queue”(循环报数处理技巧)

  •参考资料   [1]:紫书P82   •题意(by紫书)      按照被选中的次序输出这 n 个人的编号;   如果A和B选中的是同一个人,输出一个这个人的编号;   输出格式:输出的每个编号占3个字节,不够3个字节在前面用空格补; •题解  

枚举子集的三种方法~紫书

之前一直没怎么重视这一块,理解也是半知半解,现在想想还是得好好记下。   一.增量构造法 什么意思呢,简单来说就是把一个一个元素放进去又拿出来的过程 先上代码   //ass[]集合的数组//num[]子集的数组//n 集合的元素的个数//cur 初始为0,代表着子集的元素的个数void print_subset(

紫书例题6-7 树的层次遍历

纯小白也能看懂的代码,一起努力 6.3.2 二叉树的层次遍历 例题6-7 树的层次遍历(Trees on the level, Duke 1993, UVa 122) 输入一棵二叉树,你的任务是按从上到下、从左到右的顺序输出各个结点的值。每个结点都按照从根结点到它的移动序列给出(L表示左,R表示右)。在输入中,每个结点的左括