版权说明:来自 石门ss学校 Guohao OJ ,禁止转载

题目描述

虽然小X不喜欢化学原理,但他特别喜欢把一大堆液体倒在一起。

现在小X有n种液体,其中m对会发生反应。现在他想把这n种液体按某种顺序倒入一个容器内,让他获得最刺激的体验,也就是使危险系数尽量大。

我们可以这样计算危险系数,一开始容器内没有任何液体,危险系数为1。每次液体倒入容器时,若容器内已有一种或多种液体会与这种液体发生反应,则危险系数会乘2,否则危险系数不变。

最大危险系数小X不会算,希望你帮帮他。

输入输出格式

输入格式:

第一行包含两个整数n,m。

接下来m行,每行包含两个整数a,b,表示液体a和液体b会发生反应。

输出格式:

一行,包含一个整数,表示最大危险系数。

输入输出样例

输入样例:

3 2
1 2
2 3
输出样例:

4

说明

数据规模:

对于30%的数据,n≤10;

对于100%的数据,1≤n≤1000,a≠b,同种反应不会出现多次。

题目分析:

通过题目可以发现,不用管放置的顺序,我们就可以轻而易举得想到并查集,将液体合并为后,一个集的危险指数就为  2 的 (集合内个数-1) ,最后将所有集合值加起来就是答案。

代码

 #include<iostream>
#include<fstream>
using namespace std;
typedef string str;
const int Max_N=1e3+;
int n,m;
int Fa[Max_N],tot[Max_N];
string mul(string s1,string s2)
{
// 一连串的高精度乘法,个人码风问题不建议借鉴
// 最好自己手写一个
#define len1 (s1.size())
#define len2 (s2.size())
int maxx=max(len1,len2);
register int i,j,k,l;
int Ans[maxx<<|];
for(i=;i<=(maxx<<);i++)Ans[i]=;
for(i=;i<len1;i++)s1[i]-='';
for(i=;i<len2;i++)s2[i]-='';
for(i=len1-,k=;i>=;i--,k++){
for(j=len2-,l=(maxx<<)-k;j>=;j--,l--)
Ans[l]+=(int)s1[i]*s2[j];
}
for(i=(maxx<<);i>=;i--)
if(Ans[i]>){
int xy=Ans[i]/;
Ans[i-]+=xy;
Ans[i]%=;
}
int top=;
while(Ans[top]==&&top^(maxx<<))top++;
string res;
for(i=top;i<=maxx<<;i++)res+=Ans[i]+'';
return res;
}
int Find(int p)
{
// 查询祖先
if(Fa[p]==p)
return p;
return Fa[p]=Find(Fa[p]);
}
void megre(int u,int v)
{
Fa[Find(u)]=Fa[Find(v)];
return ;
}
str Pow(str b,int p)
{
// 字符串版快速幂:-D
if(!p)
return "";
str res="";
while(p){
if(p&)
res=mul(res,b);
b=mul(b,b);
p>>=;
}
return res;
}
int main()
{
scanf("%d%d",&n,&m);
int u,v;
register int i,j;
for(i=;i<=n;i++)
Fa[i]=i;
for(i=;i<=m;i++){
scanf("%d%d",&u,&v);
megre(u,v);//²¢²é¼¯ºÏ²¢²Ù×÷
}
for(i=;i<=n;i++)
tot[Find(i)]++;//统计集合内个数
str res="";
for(i=;i<=n;i++)
if(tot[i]>)
res=mul(res,Pow("",tot[i]-));
// 答案为集合内的 pow(2,(集合内个数-1)) 的和
cout<<res;
return ;
}

代码

写在最后的话:

题解仅供思路,要想成为 dalao ,请学会并尽量会做到教他人甚至自己写题解。

博主(目前)是一名初二蒟蒻,如有问题还请大家指出,一起交流学习!

Happy every day!        ——2019.4.11

[题解]小X的液体混合的更多相关文章

  1. [洛谷P1373][题解]小a和uim之大逃离

    (别点我我不是题目) 这道题可以很容易看出是一道dp(因为是在dp关卡里找的) 稍微想一下就可以yy出一个不错的状态: f[i][j][k][0/1]代表走到了点(i,j).膜液量相差k(小a-uim ...

  2. 题解 P1208 【[USACO1.3]混合牛奶 Mixing Milk】

    其实根本没有一楼dalao描述的那么麻烦...... 一楼dalao其实吧,采用了一种纯属模拟的方式. 下面是我的大跃进思想 但是一个个地做减法是不是太慢了?(大跃进思想) 于是我们是不是可以直接进行 ...

  3. 小程序 less wxss 混合 Mixins picker样式优化 箭头样式的实现原理

    lessc src/style/picker-arrow_.less src/style/picker-arrow_.wxss 快速入门 | Less.js 中文文档 https://less.boo ...

  4. Gorgeous Sequence 题解 (小清新线段树)

    这道题被学长称为“科幻题” 题面 事实上,并不是做法科幻,而是“为什么能这么做?”的解释非常科幻 换句话说,复杂度分析灰常诡异以至于吉如一大佬当场吃书 线段树维护的量:区间和sum,区间最大值max1 ...

  5. [洛谷P4942][题解]小凯的数字

    这题打着高精的旗号其实是闹着玩的……(我不是题目) 数据范围就是提示你这题O(1)的 我们知道,一个数膜9的余数等于它数字和膜9的余数 我们可以把l到r加起来然后膜9 也就是(l+r)(r-l+1)/ ...

  6. 题解 小B的询问

    题面 解析 这就是道莫队模板啊啊!! 因此,似乎并没有什么好讲的. 莫队算法传送门 我们只需要将询问存下来, 离线处理就行了. 还是上代码吧: #include<bits/stdc++.h> ...

  7. 【题解】Luogu2915 [USACO08NOV]奶牛混合起来Mixed Up Cows

    题目描述 Each of Farmer John's N (4 <= N <= 16) cows has a unique serial number S_i (1 <= S_i & ...

  8. Hybrid小程序混合开发之路 - 数据交互

    HTML+CSS是历史悠久.超高自由度.控制精准.表现能力极强.编码简单.学习门槛超低.真跨平台的一种UI界面开发方式. 本文介绍的是微信小程序和H5混合开发的一种数据交互方式. 很多应用在原生界面中 ...

  9. SASS详解之混合(mixins)

    SASS详解之混合(mixins)可以出现在SASS的任何地方.有很多类名具有相同或者相似的样式,就可以用SASS中的混合(mixins)来进行编写,然后针对不同类名的不同样式逐一编写. 定义一个混合 ...

随机推荐

  1. 从0开始用U盘制作启动盘装Windows10系统(联想R720笔记本)并永久激活方法

    一,制作U盘启动盘 随着个人电脑的“飞入寻常百姓家”,喜欢DIY电脑的发烧友们也越来越多. 安装系统是DIY最基本的要求,很容易做到: 那么如果要求用U盘装系统呢,你可能会说简单,直接下载个老毛桃或是 ...

  2. PHP八大设计模式

    设计模式 单例模式解决的是如何在整个项目中创建唯一对象实例的问题,工厂模式解决的是如何不通过new建立实例对象的方法. 单例模式 $_instance必须声明为静态的私有变量 构造函数和析构函数必须声 ...

  3. Odoo 开源微信小程序商城模块

    详见:http://oejia.net/blog/2018/09/13/oejia_weshop_about.html oejia_weshop Odoo 微信小程序商城模块 oejia_weshop ...

  4. Python 基于pykafka简单实现KAFKA消费者

    基于pykafka简单实现KAFKA消费者   By: 授客 QQ:1033553122         1.测试环境 python 3.4 zookeeper-3.4.13.tar.gz 下载地址1 ...

  5. C# 离线人脸识别 ArcSoft V2.0 Demo

    本来打算做个C#版demo,但没用成功.使用虹软最新人脸识别技术开发完成 过程如下: 1. 传入一张单人脸照片: 2.调用检测人脸函数ASFDetectFaces,成功返回人脸信息的指针: 3.使用 ...

  6. Android破解学习之路(十四)——【Unity3D】王牌大作战破解

    一.前言 今天带来的是王牌大作战的破解教程,游戏下载的话,我是直接去TapTap官网下载的 支付宝内购破解用老套了,今天学点破解的新花样吧!! 二.支付宝内购破解 支付宝的内购破解已经很熟悉了, 直接 ...

  7. citrix外企,鸡鸣寺,玄武湖环跑,七牛云笔试

    笔记汇总,计算机网络笔记汇总 昨天下江宁,经历了人生第一场f2f面试,外企,citrix思杰:(准备好久都英文介绍没用上sad) 全程一个半小时,最后被面试官夸是面过人中,对计算机网络理解最多的(希望 ...

  8. MongoDB自学(4)

    超过存储上限或记录条数删除最早的记录:db.createCollection("集合名",{capped:true,size:1024,max:100})注解:指定集合名的最大记录 ...

  9. 配置用户Log on as service

    Logon to the computer with administrative privileges. Open the ‘Administrative Tools’ and open the ‘ ...

  10. Docker(4):Docker集中化web界面管理平台—Shipyard部署

    //关闭防火墙 并禁止自启 [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# systemctl disable fir ...