UVa 1605 - Building for UN(构造法)
输入国家的个数,建造大楼使的每两个国家都有办公室相连。
例题书上给了很巧妙的思路,建造两层的n*n的大楼,第一层的第i行的都是国家i,第二层的第j列都是国家j。
1 |
|
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
输入国家的个数,建造大楼使的每两个国家都有办公室相连。
例题书上给了很巧妙的思路,建造两层的n*n的大楼,第一层的第i行的都是国家i,第二层的第j列都是国家j。
1 | #include<cstdio> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
给出n个点,m条边的无向图,每条边有一种颜色,求从结点1到结点n颜色字典序最小的最短路径。
例题,书上给了思路,首先反向BFS,记录结点到n最短距离,然后从起点BFS,每次优先选择字典序最小的颜色的路径。
1 | #include<cstdio> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
输入n种边上带标号的正方形,特定标号可以相连,判断能否铺成无限大的结构。
书上的例题,给出了思路。将标号转化为点,将正方形看作边,得到有向图,对其进行拓扑排序,判断是否形成环即可。
1 | #include<cstdio> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
模拟执行各种指令,很久之前的一道例题,书上给出了思路。
使用双端队列储存程序,根据相应的指令对队列进行调整。
1 | #include<cstdio> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
给出一个真分数,把它分解成最少的埃及分数的和。同时给出了k个数,不能作为分母出现,要求解的最小的分数的分母尽量大。
使用IDA*算法解决,在例题求埃及分数的基础上,加上禁用限制就可以了,一开始禁用限制没加好,一直WA。
1 | #include<cstdio> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
给出一串数字,加上+、-、*使得结果等于2000。
数字上限9个,直接进行暴力即可,感觉STL写起来快,居然还过了。
反正也挺简单的,就不想再用字符数组重写了,用字符数组应该会快好多。
1 | #include<iostream> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
有n个结点,一个结点上有机器人,其余结点有的有障碍物,给出结点之间的通路,求最少经过多少步才能让机器人到达目标结点。
很像书上八数码的那道例题,使用一个vis数组保存所有状态,然后进行BFS。不同的是,这这道题要进行状态压缩,否则会超时。
将每个结点是否为空用一个整数记录,然后用另一个记录机器人的位置,只有(1<<maxn)*maxn数量级的数据,就不会超时了。
找到之后递归打印解。
1 | #include<cstdio> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
给出一个数,进行加减运算,可以使用中途计算的结果,最少经过多少次可以获得目标值。中途的运算不能出现负数。
按照书上说的,每次只去最后生成的数进行运算,当那个数乘2^(maxd-d)小于目标值时,剪枝。
PS:提交时可以进行打表。
1 | #include<cstdio> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
给出一些木棍的长度,把这些木棍拼成长度相同的长木棍,求最短的长度。
首先对所有木棍进行降序排序,然后开始枚举,枚举下界是小木棍长度的最大值,上界是小木棍长度之和的一半。
在枚举的过程中必须进行剪枝,否则会超时。
1、当前枚举的长木棍长度不是小木棍长的和的因数时跳过。
2、与当前小木棍长度相同的小木棍没有使用,当前小木棍也不会使用。
3、当前是拼新的长木棍的第一个小木棍,而最后无法拼成的,直接回溯。
4、一根木棍补足长木棍剩余所需长度,而最后无法拼成的,直接回溯。
1 | #include<cstdio> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
这次比赛做的比上次好多了,pretest过了三道,除了A题脑残CE了一次,B、C都是一次过了的。系统测试C题WA了,最后是出了2道,上了140分,又变成蓝名 了。
510A - Fox And Snake:
输出蛇形图案,简单题,一开始头文件搞错了,CE了一次。
1 | #include<iostream> |
510B - Fox And Two Dots:
再给出的图案中,判断有没有环。DFS判环解决。
1 | #include<iostream> |
510C - Fox And Names:
输入按字典序排好的名字,输出一个字母表使排序成立。
拓扑排序的题,照着书上的代码敲的过了pretest,忽略了一种很坑的情况。当后面的串是前面的前缀时,怎么改字母表都是没有用的,只能是“Impossible” 。
1 | #include<iostream> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **