【UVA】10012 - How Big Is It?(暴力)】的更多相关文章

  How Big Is It?  Ian's going to California, and he has to pack his things, including his collection of circles. Given a set of circles, your program must find the smallest rectangular box in which they fit. All circles must touch the bottom of the b…
题意:给出几个圆的半径,贴着底下排放在一个长方形里面,求出如何摆放能使长方形底下长度最短. 由于球的个数不会超过8, 所以用全排列一个一个计算底下的长度,然后记录最短就行了. 全排列用next_permutation函数,计算长度时坐标模拟着摆放就行了. 摆放时折腾了不久,一开始一个一个把圆放到最左端,然后和前面摆好的圆比较检查是否会出现两个圆重叠,是的话就把当前圆向右移动到相切的位置.然后判断宽度. 结果发现过不了几个例子,检查了好久,终于发现问题出在初始位置上,如果出现一个特别小的圆放到最左…
题意:莫尔斯电码,输入若干个字母的Morse编号,一个字典和若干编码.对于每个编号,判断它可能的是哪个单词, 如果有多个单词精确匹配,输出第一个单词并加一个“!”:如果无法精确匹配,那么在编码尾部增加或删除尽量少的字符, 使其匹配某个单词并加上“?”. 析:第一次做的时候,一看啥呀,做不了,现在回来看看,发现可以做了,可以使用STL的map来做,首先先把每个字母做一个map, 然后把字典做一个map,最后输入时暴力一下,每个都找一下,这个增加字符可以这样想,就是在和字典比较时,短的在长的字符串中…
题意:给定一个排列,每次可交换两个数,用最少的次数把它变成一个1~n的环状排列. 析:暴力题.很容易想到,把所有的情况都算一下,然后再选出次数最少的那一个,也就是说,我们把所有的可能的形成环状排列全算一下,然后选出最少的. 那么就开一个两倍的数组,然后两遍从1到n,然后每次选 n 个,进行暴力,每找一个不同的,就去找这个位置应该放的,然后交换.注意两次正序和逆序暴力. #include <iostream> #include <cmath> #include <cstdlib…
题目链接:617 - Nonstop Travel 题意:给定一些红绿灯.如今速度能在30-60km/h之内,求多少个速度满足一路不遇到红灯. 思路:暴力每个速度,去推断可不能够,最后注意下输出格式就可以 代码: #include <stdio.h> #include <string.h> #include <math.h> const double esp = 1e-6; int n, vis[105]; struct D { double l; int g, y,…
lrj白书例题,真好 #include <stdio.h> #include <iostream> #include <vector> #include <math.h> #include <set> #include <queue> #include <algorithm> #include <string.h> #include <string> using namespace std; typ…
/* 裸地2-SAT问题 关键是模型转化 最小的最大 显然二分 关键是Judge的时候怎么判断 每个航班是早是晚直接影响判断 早晚只能选一个 如果我们定义bool变量xi表示 i航班是否早到 每个航班虚拟出两个点2*i 2*i+1 分别表示是否早到 然后就可以假设某个航班早到然后推导出一定连得某些边 然后就开始选点 尝试这个点选不选 看看最后是否合法 */ #include<iostream> #include<cstdio> #include<cstring> #in…
题目意思:  给定m个圆的半径,现在要求找到一个矩形使得每一个球都以地面相切,要求输出最小的矩阵的长度 #include <iostream> #include <algorithm> #include <cstring> #include <cstdlib> #include <cstdio> #include <cmath> using namespace std; int num; ]; ], c[], l[], _max; d…
题意:给出数n,求有多少组A,B的最小公约数为n; 思路:3000ms,直接暴力寻找,找到所有能把n整除的数 pi, 枚举所有pi 代码: #include <iostream> #include <cstdio> #include <vector> #define ll long long using namespace std; ll gcd(ll a,ll b) { ) return a; else return gcd(b,a%b); } int main()…
[题意]:乘积最大的子序列.n∈[1,10],s∈[-10,10] [代码]: #include<bits/stdc++.h> using namespace std; int a[105]; #define LL long long int main() { int n,f=0; LL s,ma; while(~scanf("%d",&n)) { f++; ma=0; for(int i=0;i<n;i++) scanf("%d",&am…