OpenJudge 2795 金银岛】的更多相关文章

1.链接地址: http://bailian.openjudge.cn/practice/2795/ 2.题目: 总Time Limit: 3000ms Memory Limit: 65536kB Description 某天KID利用飞行器飞到了一个金银岛上,上面有许多珍贵的金属,KID虽然更喜欢各种宝石的艺术品,可是也不拒绝这样珍贵的金属.但是他只带着一个口袋,口袋至多只能装重量为w的物品.岛上金属有s个种类, 每种金属重量不同,分别为n1, n2, ... , ns,同时每个种类的金属总的…
金银岛 Descriptions: 某天KID利用飞行器飞到了一个金银岛上,上面有许多珍贵的金属,KID虽然更喜欢各种宝石的艺术品,可是也不拒绝这样珍贵的金属.但是他只带着一个口袋,口袋至多只能装重量为w的物品.岛上金属有s个种类, 每种金属重量不同,分别为n 1, n 2, ... , n s,同时每个种类的金属总的价值也不同,分别为v 1,v 2, ..., v s.KID想一次带走价值尽可能多的金属,问他最多能带走价值多少的金属.注意到金属是可以被任意分割的,并且金属的价值和其重量成正比.…
http://noi.openjudge.cn/ch0204/8463/ 挺恶心的一道简单分治. 一开始准备非递归. 大if判断,后来发现代码量过长,决定大打表判断后继情况,后来发现序号不对称. 最后发现非递归分治非常不可做. 采用递归和坐标变换,降低了编程复杂度和思维复杂度. 坐标变换的思想十分的清晰啊!它是个好东西啊,以后要善用. #include<cmath> #include<cstdio> #include<cstring> #include<algor…
http://noi.openjudge.cn/ch0405/191/ http://poj.org/problem?id=1189 一开始忘了\(2^{50}\)没超long long差点写高精度QvQ 很基础的dp,我先假设有\(2^n\)个球,分开时就分一半,这样每次都能除开. #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long…
http://noi.openjudge.cn/ch0405/1665/?lang=zh_CN 状压水题,手动转移 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int in() { int k = 0, fh = 1; char c = getchar(); for(; c < '0' || c > '9'; c = getchar()) if (c…
http://noi.openjudge.cn/ch0405/1793/ 好虐的一道题啊. 看数据范围,一眼状压,然后调了好长时间QwQ 很容易想到覆盖的点数作为状态,我用状态i表示至少覆盖状态i表示的点的最小矩形覆盖面积. 又因为矩形一定在两个给出的点上,转移时枚举两个点,用去掉这两个点的状态来更新? 这是错误的做法,反例:4 (0,0) (0,1) (1,0) (1,1) 所以我们需要去掉这两个点的同时,去掉这两个点构成的矩形包含的所有在状态中的点. 但这样还是会WA,因为还需要初始化至少包…
2990:符号三角形 总时间限制:  1000ms       内存限制:  65536kB 描述 符号三角形的第1行有n个由“+”和”-“组成的符号 ,以后每行符号比上行少1个,2个同号下面是”+“,2个异号下面是”-“ .计算有多少个不同的符号三角形,使其所含”+“ 和”-“ 的个数相同. n=7时的1个符号三角形如下:+ + - + - + + + - - - - + - + + + - - + + - - + - - - + 输入 每行1个正整数n<=24,n=0退出. 输出 n和符号三…
2795: [Poi2012]A Horrible Poem Time Limit: 50 Sec  Memory Limit: 128 MBSubmit: 484  Solved: 235[Submit][Status][Discuss] Description 给出一个由小写英文字母组成的字符串S,再给出q个询问,要求回答S某个子串的最短循环节.如果字符串B是字符串A的循环节,那么A可以由B重复若干次得到. Input 第一行一个正整数n (n<=500,000),表示S的长度.第二行n个小…
题目: http://acm.hdu.edu.cn/showproblem.php?pid=2795 线段树问题,线段树的每个叶子节点保存的是当前行还剩余的长度,每次查询找到满足条件的一行减去该条幅的长度. 有一个点要注意的是关于线段树建立的大小,虽然题目中行数最大是10^9,但是n最大是200000,也就是说,每个条幅占一行也不过200000.所以当h大于n时,让h = n,然后建树就好了. #include<stdio.h> #include<algorithm> #defin…
在openjudge似乎无法凭题号搜到题...? 总时间限制:  1000ms  内存限制:  65536kB 描述 政府在某山区修建了一条道路,恰好穿越总共m个村庄的每个村庄一次,没有回路或交叉,任意两个村庄只能通过这条路来往.已知任意两个相邻的村庄之间的距离为di(为正整数),其中,0 < i < m.为了提高山区的文化素质,政府又决定从m个村中选择n个村建小学(设 0 < n < = m < 500 ).请根据给定的m.n以及所有相邻村庄的距离,选择在哪些村庄建小学,才…