[HDU 5090] Game with Pearls (贪心)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5090
题目大意:给你n个数,问你给若干个数增加c*k(c>=0)能否组成1,2,3,4,5,...,n?
今天下午作比赛的时候,我先用了个dfs,看这个a[i]匹配的是1到n的哪个数。
后来TLE到死。。。
仔细想想,首先,如果这个数是小的数的话,那么它可以匹配很多种,因此如果先将它匹配掉了会浪费,因为它“能力”大。
因此就可以排个序,从大到小进行匹配。
我也不知道怎么用数学语言去证明。。。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <map>
#include <set>
#include <queue>
#include <string>
#include <functional>
using namespace std; int vis[];
int a[];
int N,K;
bool flag; int main(){
int M;
scanf("%d",&M); while(M--){
flag = true;
memset(vis,,sizeof(vis));
scanf("%d%d",&N,&K);
for(int i=;i<N;i++){
scanf("%d",&a[i]);
}
sort(a,a+N,greater<int>() );
int i;
for(i=N;i>=;i--){
for(int j=;j<N;j++){
if( a[j]<=i&&!vis[j]&&(i-a[j])%K== ){
vis[j]=;
break;
}
}
}
for(int i=;i<N;i++){
if( !vis[i] ) {
flag = ;
break;
}
}
if(flag) puts("Jerry");
else puts("Tom");
}
return ;
} /*
10
3 1
1 2 3
3 1
0 0 0
3 2
2 2 3
3 2
0 1 3
5 1
1 2 3 4 5
6 2
1 2 3 4 5 5
*/
[HDU 5090] Game with Pearls (贪心)的更多相关文章
- HDU 5090 Game with Pearls (贪心)
一道贪心的题,因为最小的不能由别的转化,所以每次贪心找最小的,其余的转化成大的. 从小到大,最小的如果不存在那么就break,否则减去一个,剩下的加k继续判断. #include<cstdio& ...
- HDU 5090 Game with Pearls(二分匹配)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5090 Problem Description Tom and Jerry are playing a ...
- hdu 5090 Game with Pearls
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5090 题意:n个数,k,给n个数加上k的正倍数或者不加,问最后能不能凑成1 到 n的序列 题目分类:暴 ...
- hdu 5090 Game with Pearls(最大匹配)
Game with Pearls Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) ...
- hdu 5090 Game with Pearls (额,, 想法题吧 / 二分图最大匹配也可做)
题意: 给你N个数,a1,,,,an.代表第i个管子里有ai个珍珠. 规定只能往每根管里增加k的倍数个珍珠. 如果存在一套操作,操作完毕后可以得到1~N的一个排列,则Jerry赢,否则Tom赢. 问谁 ...
- 贪心 HDOJ 5090 Game with Pearls
题目传送门 /* 题意:给n, k,然后允许给某一个数加上k的正整数倍,当然可以不加, 问你是否可以把这n个数变成1,2,3,...,n, 可以就输出Jerry, 否则输出Tom. 贪心:保存可能变成 ...
- hdu 4825 Xor Sum(trie+贪心)
hdu 4825 Xor Sum(trie+贪心) 刚刚补了前天的CF的D题再做这题感觉轻松了许多.简直一个模子啊...跑树上异或x最大值.贪心地让某位的值与x对应位的值不同即可. #include ...
- hdu 5090 数列贪心加成1~n
http://acm.hdu.edu.cn/showproblem.php?pid=5090 给一段长度为n数列,问能否给任意个数加上k的倍数,使得加完之后恰好只有1~n 贪心,先排序,依次加出1~n ...
- HDU 5813 Elegant Construction (贪心)
Elegant Construction 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5813 Description Being an ACMer ...
随机推荐
- Jfinal中log4j的配置
基本不用配置: 1.web.xml不用配置: 2.添加文件log4j.properties到src下面: 3.lib中复制log4j的jar包进去: 4.可以使用了; package demo; im ...
- [Hibernate] - mysql
Hibernate使用mysql例子: 1) 新建一个bean: User.java package com.my.bean; import java.util.Date; public class ...
- HackerRank "Chocolate in Box" !
XOR -> 0 is the key (make it even pair): http://www.cnblogs.com/lautsie/p/3908006.html Something ...
- LintCode "Longest Increasing Continuous subsequence II" !!
DFS + Memorized Search (DP) class Solution { int dfs(int i, int j, int row, int col, vector<vecto ...
- 【并发编程】AQS学习
一个简单的示例: package net.jcip.examples; import java.util.concurrent.locks.*; import net.jcip.annotations ...
- Centos5.5下安装cacti
系统环境OS:CentOSDataBase:MySQL5.0PHP Apachenet-snmp部署CentOS cacti配置需要的环境安装MySQLyum -y install mysqlyum ...
- Force IE to Open Link in New Tab
1.First, open Internet Explorer and click on Tools and then Internet Options. 2.Now click on the Set ...
- 学习C++11的一些思考和心得(1):lambda,function,bind和委托
1.lambda表达式 lanbda表达式简单地来讲就是一个匿名函数,就是没有名称的函数,如果以前有接触过python或者erlang的人都比较熟悉这个,这个可以很方便地和STL里面的算法配合 st ...
- mssql查询某个值存在某个表里的哪个字段的值里面
第一步:创建 查询某个值存在某个表里的哪个字段的值里面 的存储过程 create proc spFind_Column_In_DB ( @type int,--类型:1为文字类型.2为数值类型 )-- ...
- Maven实战
一.不要重复造轮子 极限编程(XP)是近些年在软件行业红的发紫的敏捷开发方法,强调拥抱变化. Maven帮助XP团队实现一些核心价值: 1.简单.Maven暴露了一组一致.简洁的操 ...