
杂题
文章平均质量分 65
incredible_bly
这个作者很懒,什么都没留下…
展开
-
杂题专项:UVa 10012
这题刚开始以为就是简单的贪心,后来发现当两个球的半径差距很大时,两球的距离就不再是2*sqrt(r1*r2)了。 这样一下就没有思路了,在网上搜了下题解,才知道要记录摆放的球的球心坐标,然后通过之前摆放过的球的球心坐标更新之后摆放的球的球心坐标,最后求所摆放的球所占据的长度。 注意到球的数量 #include #include #include #include #include原创 2013-03-30 23:56:56 · 507 阅读 · 0 评论 -
杂题专项:UVa 10670
一道贪心,即在花费小于减的情况下尽量除。注意最后剩下exactly m,不能小于m。另外因为输出的限制,所以建立一个结构体并用algorithm里的sort可以方便的满足要求。 #include #include #include #include #include using namespace std; #define M 110 struct agency { cha原创 2013-03-22 23:00:21 · 543 阅读 · 0 评论 -
杂题专项:LA 3602
读懂了题意的话就很容易了,直接暴力就可以了。 #include #include #include #include using namespace std; int m,n; char s[60][1010]; int cnt[4]; int main() { freopen("in.txt","r",stdin); int T; cin>>T; whi原创 2013-03-26 22:43:11 · 504 阅读 · 0 评论 -
杂题专项:UVa 10382
一开始以为是一道简单的区间覆盖贪心,区间是离散化的。后来才发现区间是连续的,每个sprinkler覆盖的区间为[p-sqrt(r*r-w*w/4),p+sqrt(r*r+w*w/4)]。 贪心策略在lrj的入门经典里有非常详细的叙述。这里简单说一下,就是已经覆盖的区间全部排除不考虑,然后在剩下的区间中选择能覆盖的最远的那个即可。这里我用的是优先队列的方式实现的。 #include #incl原创 2013-03-26 22:45:47 · 488 阅读 · 0 评论 -
杂题专项:LA 5842
苦想无果,看了题解才勉强明白……用dp[i][st]表示选择了i个equipment所决定的属性的状态(i #include #include #include #include using namespace std; #define M 10010 int n,k; int a[M][5],dp[6][1<<5]; int main() { freopen("in.txt",原创 2013-05-15 21:16:10 · 539 阅读 · 0 评论 -
杂题专项:UVa 818
这题太抽了,完全看不懂题目。模仿UVa论坛上的思路勉强把这题过了,虽然后来有点懂了,但说起来着实费劲,就直接贴代码吧。 #include #include #include #include #include #include using namespace std; int n; string str; int g[20][20]; int vis[20]; int bitcoun原创 2013-06-02 12:34:29 · 1087 阅读 · 2 评论 -
杂题专项:UVa 11627
先将垂直的速度排序,然后二分答案即可。至于如何判断当前速度能否完成所有障碍,就是将第一个gate分别向左、向右延伸相应的距离,与下一个gate重叠的部分为下一个gate的范围,如此向下重复上述步骤,最后重叠区间不为空,则能完成所有障碍。 #include #include #include #include using namespace std; const double eps=1e原创 2013-07-03 23:11:54 · 695 阅读 · 0 评论