团体程序设计天梯赛代码。体现代码技巧,比赛技巧。  https://github.com/congmingyige/cccc_code

 #include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <string>
#include <algorithm>
#include <set>
#include <map>
#include <queue>
#include <iostream>
using namespace std; #define ll long long /*
1肯定是要放在第一位 节省空间 所有数字前移一位(k作为k-1,0作为n)。
2^20 -> 2^19 如果
使用康拓展开 19!< max long long
而不是20进制,使用两个变量 2^19*19*8 /1024/1024 =76
*/ const int maxn=;
const int inf=1e9;
const double eps=1e-; ll value[maxn],num[<<maxn][maxn];
bool f[<<maxn][maxn],vis[maxn],r[maxn+][maxn+];
int ii,a[maxn],v=,n,pr[maxn],g_pr=; void dfs(int k,int d)
{
int i;
if (k==)
{
int j,l,gl;
ll num1;
for (i=;i<=ii;i++)
if (f[v][a[i]])
for (j=;j<=n-;j++)
if (!vis[j] && r[a[i]][j])
{
gl=;
for (l=;l<j;l++)
if (vis[l])
gl++;
num1=num[v][a[i]]+value[-ii]*(j-gl);
if (!f[v|<<j][j] || num1<num[v|<<j][j])
{
f[v|<<j][j]=;
num[v|<<j][j]=num1;
}
}
return;
}
for (i=d;i<=n-;i++)
{
v+=<<i;
a[k]=i;
vis[i]=;
dfs(k-,i+);
vis[i]=;
v-=<<i;
}
} void work()
{
int i;
if (n==)
{
if (r[][] && r[][])
printf("1 2");
else
printf("No Solution");
exit();
}
for (i=;i<=n-;i++)
if (r[n-][i])
f[<<i][i]=,num[<<i][i]=value[]*i;
for (ii=;ii<=n-;ii++)
dfs(ii,);
} int main()
{
int i,j,k,ind,x,y;
ll v;
char c;
value[]=;
for (i=;i<=;i++)
value[i]=value[i-]*i; scanf("%d",&n);
for (i=;i<n;i++) ///start from 0 (2^0 = 1)
{
x=(i==)?n-:i-;
scanf("%c",&c);
for (j=;j<n;j++)
{
y=(j==)?n-:j-;
scanf("%c",&c);
if (c=='W')
r[x][y]=;
else if (c=='L')
r[y][x]=;
}
}
work(); j=(<<(n-))-;
num[j][n-]=9e18;
ind=n-; for (i=;i<=n-;i++)
if (f[j][i] && r[i][n-] && num[j][i]<num[j][ind])
ind=i; if (ind==n-)
{
printf("No Solution");
return ;
} memset(vis,,sizeof(vis));
v=num[j][ind];
printf("%d",);
for (i=;i>=-n;i--)
{
j=v/value[i];
k=;
while (vis[k])
k++;
while (j--)
{
k++;
while (vis[k])
k++;
}
printf(" %d",k+);
vis[k]=;
v%=value[i];
} return ;
}
/*
20
-WWWWWWWWWWWWWWWWWWW
W-WWWWWWWWWWWWWWWWWW
WW-WWWWWWWWWWWWWWWWW
WWW-WWWWWWWWWWWWWWWW
WWWW-WWWWWWWWWWWWWWW
WWWWW-WWWWWWWWWWWWWW
WWWWWW-WWWWWWWWWWWWW
WWWWWWW-WWWWWWWWWWWW
WWWWWWWW-WWWWWWWWWWW
WWWWWWWWW-WWWWWWWWWW
WWWWWWWWWW-WWWWWWWWW
WWWWWWWWWWW-WWWWWWWW
WWWWWWWWWWWW-WWWWWWW
WWWWWWWWWWWWW-WWWWWW
WWWWWWWWWWWWWW-WWWWW
WWWWWWWWWWWWWWW-WWWW
WWWWWWWWWWWWWWWW-WWW
WWWWWWWWWWWWWWWWW-WW
WWWWWWWWWWWWWWWWWW-W
WWWWWWWWWWWWWWWWWWW- 3
-WW
W-W
WW- 3
-WD
D-W
WD-
*/

团体程序设计天梯赛(CCCC) L3015 球队“食物链” 状态压缩的更多相关文章

  1. 团体程序设计天梯赛(CCCC) L3021 神坛 的一些错误做法(目前网上的方法没一个是对的) 和 一些想法

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code

  2. 团体程序设计天梯赛(CCCC) L3019 代码排版 方法与编译原理密切相关,只有一个测试点段错误

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code

  3. 团体程序设计天梯赛(CCCC) L3014 周游世界 BFS证明

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code

  4. 团体程序设计天梯赛(CCCC) L3013 非常弹的球 不同思路

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code

  5. 团体程序设计天梯赛(CCCC) L3012 水果忍者 上凸或下凹的证明

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code #include <cstdio> #include ...

  6. 团体程序设计天梯赛(CCCC) L3009 长城 方法证明

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code

  7. 树状数组+二分答案查询第k大的数 (团体程序设计天梯赛 L3-002. 堆栈)

    前提是数的范围较小 1 数据范围:O(n) 2 查第k大的数i:log(n)(树状数组查询小于等于i的数目)*log(n)(二分找到i) 3 添加:log(n) (树状数组) 4 删除:log(n) ...

  8. PTA L2-001 紧急救援-最短路(Dijkstra)多条最短路找最优解并输出路径 团体程序设计天梯赛-练习集

    L2-001 紧急救援 (25 分)   作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两个城市的快 ...

  9. PTA|团体程序设计天梯赛-练习题目题解锦集(C/C++)(持续更新中……)

    PTA|团体程序设计天梯赛-练习题目题解锦集(持续更新中) 实现语言:C/C++:      欢迎各位看官交流讨论.指导题解错误:或者分享更快的方法!! 题目链接:https://pintia.cn/ ...

随机推荐

  1. PJSUA2开发文档--第七章 呼叫 Calls类

    7   呼叫Calls 呼叫由Call类处理 7.1 子类化Call类 要使用Call类,应用程序应创建子类,如: class MyCall : public Call { public: MyCal ...

  2. SQL Server 迁移至MySQL 关键步骤的梳理总结

    迁移主要是通过Navicat工具来实现的.迁移工具的选定在此不讨论. 迁移前准备 1.提前通知DBA\SA\BI等,并确认发布计划及数据库迁移方案. 2.梳理出SQL  Server DB 中影响业务 ...

  3. Undefined attribute name (placeholder)

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  4. httpservlet里单纯分页

    @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletExcep ...

  5. jsoup爬取网站图片

    package com.ij34.JsoupTest; import java.io.File; import java.io.FileOutputStream; import java.io.Inp ...

  6. Java 集合系列(四)—— ListIterator 源码分析

    以脑图的形式来展示Java集合知识,让零碎知识点形成体系 Iterator 对比   Iterator(迭代器)是一种设计模式,是一个对象,用于遍历集合中的所有元素.  Iterator 包含四个方法 ...

  7. layui中弹出层的两种表达方式

    方式一: 定义js中定义html变量 方式二: 设置div :hidden:hidden 布局 数据表格自适应大小: 代码: <style> .btn-container { margin ...

  8. XML详解一XML语法

    XML指可扩展标记语言很类似 HTML,被设计用来传输和存储数据而非显示数据,XML标签没有被预定义需要自行定义标签,标签具有自我描述性,同时XML也是 W3C 的推荐标准. 先来写一个XML脚本de ...

  9. Java Scala 混合编程导致 编译失败 ,【找不到符号】问题解决

    大致就是 工程里分了 java 代码 和 scala 代码. 然后在java代码中 引用了 scala 的代码. 运行不报错. 但是打包就是一直报错. [ERROR] Failed to execut ...

  10. Android开发中,使用 EditText 输入内容,如何进行一键清空内容处理

    本文仅为个人的处理方式,希望能对您有所帮助,欢迎各位留言指正,抱拳了 1.text.xml示例: <?xml version="1.0" encoding="utf ...