XTUOJ 1248 TC or CF 搜索

这个题一眼看上去不会

然后有人说是网络流

然后我就想怎么建图啊,然后不会(是本蒟蒻太垃圾了),肯定有网络流解法

然后去群里问了gdut的巨巨,他说他队友爆搜+剪枝过了(我也是非常的叹服)

然后我也写了一个2^50的搜索剪枝,居然真过了(不知道是数据弱还是大力出奇迹)

#include <cstdio>
#include <iostream>
#include <ctime>
#include <vector>
#include <cmath>
#include <map>
#include <queue>
#include <algorithm>
#include <cstring>
using namespace std;
typedef long long LL;
const int N=1e5+5;
const int INF=0x3f3f3f3f;
const int mod=1e9+7;
vector<int>g[55],v[55],op[55];
int belong[55],ret,n,m;
void dfs(int pos,int c,int t1,int t2){
  if(t1>n-3||t2>n-3)return;
  if(c>=ret)return;
  if(n==pos){
    if(t2+1>n-3)return;
    for(int i=0;i<g[n].size();++i){
      if(op[n][i]==2&&belong[g[n][i]]==1)c+=v[n][i];
    }
    ret=min(ret,c);
    return;
  }
  belong[pos]=1;
  int tmp=0;
  for(int i=0;i<g[pos].size();++i){
    if(op[pos][i]==1&&belong[g[pos][i]]==2)tmp+=v[pos][i];
  }
  dfs(pos+1,c+tmp,t1+1,t2);
  belong[pos]=2;
  for(int i=0;i<g[pos].size();++i){
    if(op[pos][i]==2&&belong[g[pos][i]]==1)c+=v[pos][i];
  }
  dfs(pos+1,c,t1,t2+1);
}
int main()
{
    while(~scanf("%d%d",&n,&m)){
      for(int i=1;i<=n;++i){
        v[i].clear();
        g[i].clear();
        op[i].clear();
      }
      for(int i=1;i<=m;++i){
        int k1,k2,k3;
        scanf("%d%d%d",&k1,&k2,&k3);
         if(k1>k2){
          v[k1].push_back(k3);
          g[k1].push_back(k2);
          op[k1].push_back(1);
         }
         else{
          v[k2].push_back(k3);
          g[k2].push_back(k1);
          op[k2].push_back(2);
         }
      }
      ret=INF;
      belong[1]=1;
      dfs(2,0,1,0);
      printf("%d\n",ret);
    }
    return 0;
}

时间: 2024-08-26 07:19:17

XTUOJ 1248 TC or CF 搜索的相关文章

TC快速搜索在win10下不可用

今天突然发现TC的快速搜索在win10下突然不可用,按Ctrl + s 呼出快速搜索栏后半天不响应也无法输入文字.论坛里给出来的建议是将 QuickSearch 2.2.3 升级到 2.2.6,目前插件下载里还是2.2.3, 根据作者的网盘下载更新,问题解决. 解决思路,发现只有快速搜索不可用,想到是安装了QuickSearch插件,于是看插件压缩包里的文件名,从网上搜 "插件文件名+ windows10" 发现可以搜索到. TC Hangs when using quick sear

Codeforces Gym 101142C:CodeCoder vs TopForces(搜索)

http://codeforces.com/gym/101142/attachments 题意:每个人在TC和CF上分别有两个排名,如果有一个人在任意一个网站上大于另一个人的排名,那么这个人可以打败另外一个人.还有就是如果 B 能打败 A, C 能打败 B,但是 C 直接从排名上看 C 并不能打败 A,但是因为 B -> A 并且 C -> B,所以 C -> B -> A, 即 C 也能(通过打败 B 来)打败 A. 如这个样例: A :5, 5 , B :1, 6,  C:2,

Total Commander TC 学习

--------------------内容主要来自 http://xbeta.info/studytc/index.htm ,摘录了自己觉得需要注意的地方. ---------- 基本的操作思想:  定位  ->  选择 -> 操作 Contents 1. 定位 2. 选择 3. 选择文件 4. 压缩及插件 5. 搜索 6. 批量重命名 7. 文件(夹)同步与比较 1. 定位: Method 1. 自定义目录的快捷方式,快捷键直达.Ctrl + D then press X(附加操作) Ct

这个是置顶的标题(`?ω?&#180;)

寒假几天的集训来看,自己不会的算法还是很多_(:зゝ∠)_,还有一些暑假学的忘记了,想想整个大二上学期,也就学了一个网络流,一个AC自动机,一个后缀数组.寒假时间还是很充裕的,适合研究几个算法. 就目前来看,自己唯一有优势的地方是代码能力稍微好一些,其他很多地方还是不如别人... [下面的完整知识目录来自这里@whatbeg] 1: 高级数据结构(17) 并查集,线段树,树状数组,KMP,字典树(Trie),左偏树(可合并堆),单调队列,优先队列,AC自动机,后缀树/数组,二叉堆,伸展树,Tre

As FancyCoder

路漫漫其修远兮,吾将上下而求索.搞OI的时候,我用这句话勉励自己. 漫漫六年OI路,无数个对着电脑屏幕的日日夜夜,无数次清脆急促的键盘敲击声,对OI的那份热爱给了我从未有过的执着. 有发自内心的高兴,有真真切切的泪水. 这个是我自己做的一份OI笔记吧.算是一份算法清单吧,外加一些题目的总结. 不过由于我水平有限,很多东西也不甚懂,所以可能不会特别全面. 不过觉得可能对后人有用,就放上来了.博君一笑. 还有部分自己的代码以及一份在学校里曾经用过的讲稿(自己感觉还是蛮好的).也顺便放上来了. 下面是

emacs ido模式

EMACS这类大神级的编辑器,欠缺一个左树右文件浏览模式的东西.经过一番调查发现,有dirtree能够搞定这个事情,另外还有几个其他的也能办到,例如speedbar, neotree都类似与vi 的nerdtree. 这些东东虽然好看,但是却不是emacs亲生的,都需要繁琐的配置.在stackoverflow中发现一个人推荐用ido,这个插件,原因是真正的程序员要做到眼中无树,人树合一的地步,推荐IDO只用两行代码就能搞定安装使用了.下面是步骤: 1,安装 (require 'ido) (ido

分享一下我的vim配置

这是我长时间使用vim总结的一些配置,分享给有需要的人.可以支持编译一键编译并执行C.C++和Java(需要安装编译器并配置环境变量),具体的使用方法,在下面的配置文件中讲的很详细.另外,在Linux上默认使用的clang的编译器,这种编译器可以兼容gcc的大部分选项,并且编译速度更快,提示更加友好,您也可以根据自己的需要改成自己喜欢的编译器. 我是在Windows7下测试的,所以Windows7系统直接可用.其中的插件与配置文件在 Linux 下同样适用.如果您是XP的用户,可能会出现Cons

新年计划(参考)

新年计划 还是给自己一个计划. 新年规划,还是按照我的观念,先生活后工作: 1.首要大事应该是要搞定每次打电话回家父母都要关心的事情了.但愿吧,自己不急,感觉时间大把,但是父母以他们的观念来看,已经等不及了. 2.从今年开始,每年孝敬父母一个月的工资,算是每年为父母工作一个月吧. 3.职业发展上能够再上一层楼.至于是什么就不说了,心里有数. 4.开始学会理财,08年底和09年底都把自己的所有支出统计了一次,发现工资的收入几乎是和支出相等的,没有什么剩余.看着一堆的支出项,却又不知道花往何处了.今

[Teamcenter 2007 开发实战] 调用web service

前言 在TC的服务端开发中, 可以使用gsoap 来调用web service. 如何使用 gsoap  , 参考 gsoap 实现 C/C++ 调用web service 接下来介绍如何在TC中进行开发. 开发的方式与环境搭建 在TC的CF端调用webservice , 可以把gsoap 产生和完成的代码打成一个  .lib 的文件(windows, 在linux 下是 .a 的文件) 这里使用的开发工具是 visual studio . 新建一个空的项目, 语言选 C++的就可以了 创建完成