首页 > 其他分享 >懂事时理解原神

懂事时理解原神

时间:2023-10-16 22:34:38浏览次数:41  
标签:原神 int 懂事 char while 理解 SIZE buf getchar

懂事时理解原神 の 传送门

看到 概率,再看到 完全正确

还有这样例,只有 1.0000.000,然后画个图。

可以发现,从 \(1\) 开始遍历,则点 \(2\) 的距离既可能是 \(1\),又可能是 \(2\),就会出错,即只要这个图有环,则一定会出错。

#include <iostream>
#include <cstring>
const int N=5e4+5;
int T,n,m,f[N],vis[N];
namespace Fread {
const int SIZE = 16;
char buf[SIZE], *S, *T;
inline char getchar() {
    if (S == T) {
        T = (S = buf) + fread(buf, 1, SIZE, stdin);
        if (S == T) return '\n';
    }
    return *S++;
}
}
namespace Fwrite {
const int SIZE = 65536;
char buf[SIZE], *S = buf, *T = buf + SIZE;
inline void flush() {
    fwrite(buf, 1, S - buf, stdout);
    S = buf;
}
inline void putchar(char c) {
    *S++ = c;
    if (S == T) flush();
}
struct NTR {
    ~ NTR() { flush(); }
} ztr;
}
#ifdef ONLINE_JUDGE
    #define getchar Fread :: getchar
    #define putchar Fwrite :: putchar
#endif
namespace Fastio {
struct Reader {
    template<typename T>
    Reader& operator >> (T& x) {
        char c = getchar();
        T f = 1;
        while (c < '0' || c > '9') {
            if (c == '-') f = -1;
            c = getchar();
        }
        x = 0;
        while (c >= '0' && c <= '9') {
            x = (x * 10 + (c - '0'));
            c = getchar();
        }
        x *= f;
        return *this;
    }
    Reader& operator >> (char& c) {
        c = getchar();
        while (c == '\n' || c == ' ') c = getchar();
        return *this;
    }
    Reader& operator >> (char* str) {
        int len = 0;
        char c = getchar();
        while (c == '\n' || c == ' ') c = getchar();
        while (c != '\n' && c != ' ') {
            str[len++] = c;
            c = getchar();
        }
        str[len] = '\0';
        return *this;
    }
    Reader(){}
} cin;
const char endl = '\n';
struct Writer {
    template<typename T>
    Writer& operator << (T x) {
        if (x == 0) { putchar('0'); return *this; }
        if (x < 0) { putchar('-'); x = -x; }
        static int sta[45];
        int top = 0;
        while (x) { sta[++top] = x % 10; x /= 10; }
        while (top) { putchar(sta[top] + '0'); --top; }
        return *this;
    }
    Writer& operator << (char c) {
        putchar(c);
        return *this;
    }
    Writer& operator << (char* str) {
        int cur = 0;
        while (str[cur]) putchar(str[cur++]);
        return *this;
    }
    Writer& operator << (const char* str) {
        int cur = 0;
        while (str[cur]) putchar(str[cur++]);
        return *this;
    }
    Writer(){}
} cout;
}
#define cin Fastio :: cin
#define cout Fastio :: cout
#define endl Fastio :: endl
int find(int v) {return (f[v]==v?v:f[v]=find(f[v]));}
signed main() {
	cin>>T;
	while(T--) {
		cin>>n>>m;
		for(int i=1;i<=n;++i)	f[i]=i;
		memset(vis,0,sizeof(vis));
		while(m--) {
			int u,v;cin>>u>>v;
			u=find(u),v=find(v);
			if(u==v)	vis[u]=1;
			f[v]=u;
		}
		for(int i=1;i<=n;++i)
			if(find(1)==find(i)&&vis[i]) {
				cout<<"0.000"<<endl;goto CONTINUE;
			}
		cout<<"1.000"<<endl;
		CONTINUE:;
	}
	return 0;
}

标签:原神,int,懂事,char,while,理解,SIZE,buf,getchar
From: https://www.cnblogs.com/Silver-Wolf/p/P8881.html

相关文章

  • 深入理解斜率优化
    转移到\(i\)时考虑两个转移点\(j<k\)中\(j\)更优的条件,可以写成\(\dfrac{a_k-a_j}{b_k-b_j}\)大于或者小于\(c_i\)的形式。把信息看做二维平面上的点\((b,a)\),那么上面的条件实际上就是\(j\)与\(k\)两点间的斜率大于或者小于\(c_i\)。所以可以维护一个凸包,具体......
  • 对设计模式的理解
    一切设计,都围绕着抽象与具体展开!大道至简!抽象:一般指接口。里面没有方法细节,只有方法签名。方法签名告诉你它能干什么,但不提供怎么干具体:所有具体类都应该是单一职责的。具体可以依赖抽象,程序运行过程中,会有该抽象的具体实现替代抽象。且具体类要符合最少知道原则,只开放必要的方......
  • RaftPaper:寻一个可被理解的共识算法
    周末躺不平,摆不烂,卷不动,随便读一篇paper吧原文:InSearchofanUnderstandableConsensusAlgorithm作者:DiegoOngaro/JohnOusterhout——StanfordUniversity摘要Raft是一个用于管理一份被复制的日志的共识算法,它和(multi-)Paxos产出的结果等价,和Paxos一样高效,但它的结......
  • 深入理解 JavaScript 时间分片:原理、应用与代码示例解析
    JavaScript时间分片(TimeSlicing)是一种优化技术,用于将长时间运行的任务拆分为多个小任务,以避免阻塞主线程,提高页面的响应性和性能。本文将详细解释JavaScript时间分片的原理、应用场景,并通过代码示例帮助读者更好地理解和应用该技术。本文首发于:kelen.cc概念时间分片(TimeSl......
  • 深入理解 python 虚拟机:GIL 源码分析——天使还是魔鬼?
    深入理解python虚拟机:GIL源码分析——天使还是魔鬼?在目前的CPython当中一直有一个臭名昭著的问题就是GIL(GlobalInterpreterLock),就是全局解释器锁,他限制了Python在多核架构当中的性能,在本篇文章当中我们将详细分析一下GIL的利弊和GIL的C的源代码。选择GIL......
  • 如何理解关系型数据库的常见设计范式?
    关系型数据库的常见设计范式有第一范式、第二范式和第三范式,分别简称为1NF、2NF和3NF。第一范式(1NF)是指一个关系(表)中的每个属性(列)都是不可分割的原子值。也就是说,如果一个属性可以被分成更小的子属性,那么它就不符合第一范式。例如,一个包含“姓名”和“地址”两个属性的表不符合第一......
  • 快速理解 TypeScript 的逆变和协变
    快速理解TypeScript的逆变和协变发布于 2022-06-0608:36:428081举报深入学习TypeScript类型系统的话,逆变、协变、双向协变、不变是绕不过去的概念。这些概念看起来挺高大上的,其实并不复杂,这篇文章我们就来学习下它们吧。类型安全和型变TypeScript......
  • 英方软件和dell emc对比理解
    英方软件和dellemc对比理解;  英方软件功能对比dellemc理解i2Availability1、英方实现业务高可用的时候,要求在异地运行与生产机环境一致的备机,备机数据实时与生产机同步,随时准备接管;目前dellemc更多的是针对存储LUN的同步;通过vplex可以对不同存储LUN......
  • 深入理解MySQL中的Join算法
    本文已收录至GitHub,推荐阅读......
  • 一个需要感性理解的树上算法 学习心得
    题目描述你现在有一颗\(n\)个点的树和\(m\)条由\(x_i\)到\(y_i\)(\(1\lex_i\,\y_i\len\))的简单可重复路径。求有多少种方案选路径,使路径集的大小为\(k\),且所有路径至少有一个公共点。对\(10^9+7\)取模。题解这道题需要感性理解做法。我们记一个路径左右......