软件项目管理作业-medium
文章平均质量分 63
wust_tanyao
这个作者很懒,什么都没留下…
展开
-
13 URAL1303 Minimal Coverage
给cnt条线段,要求覆盖[0,m],问能否覆盖,至少需要多少条线段。 用贪心的想法,假设当前位置在now,那么此时添加一条线段使得左端点 下次继续添加这样一条线段,使得右端点最远,左端点 扫完所有线段,now的位置可以到达m,则有解,否则无解。 #include #include using namespace std; struct node { int l,r;原创 2015-05-02 20:51:16 · 651 阅读 · 0 评论 -
14 POJ3363 Annoying painting tool
给一个全0矩阵,每次你可以使得一个r*c的子矩阵01翻转,问是否可以通过这种操作使得矩阵变为题目给定的矩阵,最少需要多少次操作。 可以发现,对于第一行第一个点,它只能通过翻转包含(1,1)这个点在内的矩阵才能变,也就是r*c的左上端点在(1,1)。 通过至多一次操作,我们可以保证这个点可以达到目标状态。 接着第二个点,我们首先不能影响第一个点,因此如果这个点与目标状态不同,我们只能以这个点为原创 2015-05-02 20:58:28 · 760 阅读 · 0 评论 -
11 URAL1025 Democracy in Danger
选择人数较少的m/2只队,每只队中半数人投票。 #include #include using namespace std; int main() { int i,n,ans,s[110]; while(~scanf("%d",&n)) { for(i=0;i<n;i++) scanf("%d",&s[i]); sort(s原创 2015-05-02 20:44:16 · 672 阅读 · 0 评论 -
12 POJ1477 Box of Bricks
题目保证有解,先求砖块数的平均数。 再把多的部分移到缺的地方,答案就是多的部分的和。 #include int n,ans,sum,cas=1,avg,i,h[55]; int main() { while(~scanf("%d",&n)&&n) { sum=ans=0; for(i=0;i<n;i++) scanf("%d",&原创 2015-05-02 20:46:25 · 610 阅读 · 0 评论 -
15 UVA10982 Troublemakers
n个人,m对之间有关系,现在要把n个人分成两组,使得每组内,有关系的人的对数最少。 我们可以有一个贪心的想法,对于每一个人,我们要么分在第一组,要么分在第二组。 那么分在哪一组能够使得当前与我有关系的人最少,就分在哪一组。 这样求得答案,满足题目要求即输出相应内容。 #include #include bool e[105][105]; int vis[105],T,n,m,i,j原创 2015-05-02 21:00:43 · 903 阅读 · 0 评论