BNU29376——沙漠之旅——————【技巧题】
沙漠之旅
64-bit integer IO format: %lld Java class name: Main
“小胖要穿越一片沙漠,小胖开着一辆大吉普,小胖的吉普油耗高,吉普能放四桶油。”
这就是人人会唱的沙漠之歌~~体现了小胖拔群的聪明才智。
小胖的问题是这样的:现在需要驾车穿越一片沙漠,总的行驶路程为L。小胖的吉普装满油能行驶X距离,同时其后备箱最多能放下四桶油。在起点有N种汽油,每种汽油都有无限桶,一桶能行驶距离Ai。现在小胖想知道:能不能恰好带四桶油,再加上出发前装满的油,使得恰好能行驶L距离。
Input
第一行一个正整数T(1 <= T <= 50),表示数据的组数。
接下来T组数据,每组数据的第一行是三个整数L(1 <= L <= 1000),X(1 <= X <= L),N(1 <= N <= 1000)。
接下来N行,每行一个正整数Ai(1 <= Ai <= 1000),表示第i种汽油一桶能行驶的距离。
Output
对于每组数据输出一行,若能输出“Yes”,否则输出“No”
Sample Input
1
20 9 2
2
3
Sample Output
Yes
#include<bits/stdc++.h>
using namespace std;
int a[2000];
bool flag[2000];
int main(){ int t;
scanf("%d",&t);
while(t--){ memset(flag,0,sizeof(flag));
int l,x,n;
scanf("%d%d%d",&l,&x,&n);
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
flag[a[i]]=1;
}
int ans=l-x;
bool Flag=0;
sort(a,a+n);
for(int i=0;i<n;i++){
if(a[i]>ans)
break;
for(int j=0;j<n;j++){
if(a[i]+a[j]>ans)
break;
for(int k=0;k<n;k++){
if(a[i]+a[j]+a[k]>ans)
break;
int tmp=ans-a[i]-a[j]-a[k];
if(flag[tmp]){ Flag=1;
break;
}
}
if(Flag)
break;
}
if(Flag)
break;
}
if(Flag)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}
BNU29376——沙漠之旅——————【技巧题】的更多相关文章
- B. 沙漠之旅(分组背包)
		
B. 沙漠之旅 Time Limit: 1000ms Case Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO format: % ...
 - OCP 认证考试报名费技巧题库051052053解析合格线
		
本人于2017年4月22日通过参加OCP考试,第一次参加,一天之内考了三门,三门一次性通过,052 - 95% ,053 - 86% ,051 - 100% 一.关于考试考试报名费: 052:158$ ...
 - 【LOJ6043】「雅礼集训 2017 Day7」蛐蛐国的修墙方案(搜索技巧题)
		
点此看题面 大致题意: 给你一个长度为\(n\)的排列\(p\),要求构造一个合法的括号序列,使得如果第\(i\)个位置是左括号,则第\(p_i\)个位置一定是右括号. 暴搜 很容易想出一个暴搜. 即 ...
 - Gym 101102J---Divisible Numbers(反推技巧题)
		
题目链接 http://codeforces.com/gym/101102/problem/J Description standard input/output You are given an a ...
 - 技巧题---Single boy
		
Description Today is Christmas day. There are n single boys standing in a line. They are numbered fo ...
 - BNU 沙漠之旅
		
http://www.bnuoj.com/bnuoj/problem_show.php?pid=29376 我直接暴力搜索的. 剪枝: 1.步骤最多只有4步,超过4步则退出 2.油的行程相加后的总和距 ...
 - POJ 2229 Sumsets(技巧题, 背包变形)
		
discuss 看到有人讲完全背包可以过, 假如我自己做的话, 也只能想到完全背包了 思路: 1. 当 n 为奇数时, f[n] = f[n-1], 因为只需在所有的序列前添加一个 1 即可, 所有的 ...
 - 【动态规划技巧题】POJ2229-Sumsets
		
[题目大意] 把一个数n分成2的指数幂相加的形式,问有几种情况. [思路] 如果当前i为奇数,则必定有至少一个1,可以看作i-1的情形再加上一个1.即f[i]=f[i-1]. 如果当前i为偶数,假设没 ...
 - FZU 1922——非主流——————【技巧题】
		
非主流 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status P ...
 
随机推荐
- EF Power Tools使用
			
转载:http://blog.csdn.net/planisnothing/article/details/8532316 1.可以很方便根据数据库生成Code First模式的代码,如果是已有项目转 ...
 - 《spring 攻略》笔记1
			
chapter1 spring简介 两种spring ioc容器实现类型: BeanFactory ApplicationContext 应用程序上下文 DI技巧: @Autowired(requir ...
 - Selenium API(一)
			
1.设置浏览器大小: # -*- coding:utf- -*- from selenium import webdriver import time driver = webdriver.Firef ...
 - 【arc074e】RGB Sequence dp
			
Description  丰泽爷今天也在愉快地玩Minecraft!  现在丰泽爷有一块1∗N1∗N的空地,每个格子按照顺序标记为11到NN.丰泽爷想要在这块空地上铺上红石块.绿宝石块和钻石块作为 ...
 - c语言数据结构学习心得——队列
			
队列 只允许在一端进行插入,在另一端进行删除的线性表 队头(Front):允许删除的一端(队首) 队尾(Rear):允许插入的一端 FIFO:先进先出 不要求从数组首位开始存储队列 #define M ...
 - 三种timer控件的简单实例
			
.system.windows.forms .system.threading.timer .system.timers.timer using System; using System.Collec ...
 - php中的openssl开启方法
			
windows下开启方法: 1: 首先检查php.ini中:extension=php_openssl.dll是否存在, 如果存在的话去掉前面的注释符‘:', 如果不存在这行,那么添加extensio ...
 - WPF优化:Freezable冻结对象
			
原文:WPF优化:Freezable冻结对象 WPF虽然很美观,效果很炫,但是对资源的消耗也很大,尤其是初次接触WPF的人,因为很多地方虽然实现了想要的效果,但是由于经验问题,所以也会造成很大的资源浪 ...
 - Thinkphp5.1  URL重写  .htaccess文件
			
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{RE ...
 - 如何在JAVA中每隔一段时间执行一段程序
			
可以用线程来做,每隔几秒开一个线程代码如下 public void runTask() { final long timeInterval = 120000;// 两分钟运行一次 final Thre ...