PAT T1021 Safe Fruit
暴力搜索加剪枝~
看的人好多...更新一下:
这道题的正解应该是求最大团之类的...暴力搜索是拿不到分的,我用了好几种奇怪的技巧用爆搜卡掉了。。。
#include<bits/stdc++.h>
using namespace std;
const int maxn=;
const int inf=1e9;
int g[maxn][maxn];
int c[maxn];
int N,M;
int mincost=1e9;
int cost=;
int flag;
int tle=;
int ans=;
bool visit[maxn];
vector<int> path,tmp;
void dfs (int v,int direction) {
tle++;
if (tle>1e5) return;
if (tmp.size()>path.size()) {
path=tmp;
mincost=cost;
}
else if (tmp.size()==path.size()&&cost<mincost) {
path=tmp;
mincost=cost;
}
if (direction==) {
v++;
while (v<=) {
flag=;
if (c[v]==) {
v++;
continue;
}
for (int j=;j<tmp.size();j++)
if (g[v][tmp[j]]==) {
flag++;
break;
}
if (flag==) {
tmp.push_back(v);
visit[v]=true;
cost+=c[v];
dfs (v,);
tmp.pop_back();
visit[v]=false;
cost-=c[v];
}
v++;
}
}
else {
v--;
while (v>=) {
flag=;
if (c[v]==) {
v--;
continue;
}
for (int j=;j<tmp.size();j++)
if (g[v][tmp[j]]==) {
flag++;
break;
}
if (flag==) {
tmp.push_back(v);
visit[v]=true;
cost+=c[v];
dfs (v,);
tmp.pop_back();
visit[v]=false;
cost-=c[v];
}
v--;
}
}
}
int main () {
scanf ("%d %d",&M,&N);
int u,v;
for (int i=;i<M;i++)
scanf ("%d %d",&u,&v),g[u][v]=g[v][u]=;
for (int i=;i<=N;i++) {
scanf ("%d %d",&u,&v);
c[u]=v;
if (v>) ans++;
}
if (ans!=) dfs (,);
else dfs (,);
printf ("%d\n",path.size());
sort (path.begin(),path.end());
for (int i=;i<path.size();i++) {
if (i!=) printf (" ");
printf ("%03d",path[i]);
}
printf ("\n%d",mincost);
return ;
}
PAT T1021 Safe Fruit的更多相关文章
- 《转载》PAT 习题
博客出处:http://blog.csdn.net/zhoufenqin/article/details/50497791 题目出处:https://www.patest.cn/contests/pa ...
- Warning: strftime(): It is not safe to rely on the system's timezone settings.
当运行程序时,会出现如下警告: Warning: strftime(): It is not safe to rely on the system's timezone settings. You a ...
- The Safe Navigation Operator (&.) in Ruby
The most interesting addition to Ruby 2.3.0 is the Safe Navigation Operator(&.). A similar opera ...
- 【转】php Thread Safe(线程安全)和None Thread Safe(NTS,非 线程安全)之分
Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分,这两者不同在于何处?到底应该用哪种?这里做一个简单的介绍. ...
- PAT Judge
原题连接:https://pta.patest.cn/pta/test/16/exam/4/question/677 题目如下: The ranklist of PAT is generated fr ...
- PAT/字符串处理习题集(二)
B1024. 科学计数法 (20) Description: 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+ ...
- PAT 1041. 考试座位号(15)
每个PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座 ...
- PAT 1040. 有几个PAT(25)
字符串APPAPT中包含了两个单词"PAT",其中第一个PAT是第2位(P),第4位(A),第6位(T):第二个PAT是第3位(P),第4位(A),第6位(T). 现给定字符串,问 ...
- PAT 1032. 挖掘机技术哪家强(20)
为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校. 输入格式: 输入在第1行给出不超过105的正整数N,即参赛人数.随后N行,每行给出一位 ...
随机推荐
- 剑指OFFER之合并两个排序的链表
题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 解决办法 1.递归方法: if(pHead1==NULL) return pHead2; els ...
- Jmeter 测试结果分析之聚合报告简介
聚合报告(aggregate report) 对于每个请求,它统计响应信息并提供请求数,平均值,最大,最小值,错误率,大约吞吐量(以请求数/秒为单位)和以kb/秒为单位的吞吐量. 吞吐量是以取样目标点 ...
- 【Vue实例生命周期】
目录 实例创建之前执行--beforeCreate 实例创建之后执行--created 挂载之前执行--beforeMount 挂载之后执行--mounted 数据更新之前执行--beforeUpda ...
- Vue学习心得----新手如何学习Vue(转载)
ps:本文并非原著,转载自:https://www.cnblogs.com/buzhiqianduan/p/7620102.html,请悉知 前言 使用vue框架有一段时间了,这里总结一下心得,主要为 ...
- 开源协议:LGPL协议、OSGi协议
本文介绍开源的协议. LGPL 是 GNU Lesser General Public License (GNU 宽通用公共许可证)的缩写形式,旧称 GNU Library General Publi ...
- pod的状态及操作
查看pod的标签 [root@master pod]# kubectl get pods --show-labels NAME READY STATUS RESTARTS AGE LABELS cv- ...
- Bug搬运工-CSCvf74866:Webauth scaling improvements - fix problem with GUI going unresponsive with HTTPS redirect
Webauth scaling improvements - fix problem with GUI going unresponsive with HTTPS redirect CSCvf7486 ...
- android界面布局
(一)LinearLayout界面编排模式 他的格式是按照线性顺序,由上往下或右左往右,逐一排列界面组件. layout_width:中的“match_parent”表示要填满他所在的外框,而“wra ...
- VUE项目部署公网ip和端口以及使用域名访问配置
前提是已经配置好了相应的外网和内网端口的映射 一.公网ip和端口配置 在vue项目启动之前对项目下:项目名/config/index.js 文件进行修改 原来的内容为:(位置在index.js的第16 ...
- Fluent_Python_Part3函数即对象,05-1class-func,一等函数,函数即对象
一等函数 一等函数即将函数看作一等对象.一等对象满足一下条件: 在运行时创建 能赋值给变量或数据结构中的元素 能作为参数传给函数 能作为函数的返回结果 1. 一等函数 例子1. 证明function是 ...