精华内容
下载资源
问答
  • 6.17 有个很好的窍门,如果我这样写:intrealarray[10];int*array=&realarray[-1];我就可以把“array”当作下标从1 开始的数组。 函数和多维数组 6.18 当我向一个接受指针的指针的函数传入二维数组的时候,编译器...
  • 《你必须知道495C语言问题》

    热门讨论 2010-03-20 16:41:18
    《你必须知道的495C语言问题》结构清晰,讲解透彻,是各高校相关专业C语言课程很好的教学参考书,也是各层次C程序员的优秀实践指南。 -----------------------------------------------------------------------...
  • 可我找不到任何方法来声明这样函数——感觉我需要一个返回指针函数,返回指针指向又是返回指针函数……,如此往复,以至无穷。 12  数组大小 13 1.23 能否声明和传入数组大小一致局部数组,或者由...
  •  本书结构清晰,讲解透彻,是各高校相关专业C语言课程很好的教学参考书,也是各层次C程序员的优秀实践指南。 作者简介 Steve Summit,著名的C语言专家。Usenet C FAQ的创始人和维护者,有近30年的C编程经验。...
  • 你必须知道495C语言问题(PDF)

    热门讨论 2009-09-15 10:25:47
    3.12 我需要根据条件把一个复杂表达式赋值给两个变量中一 个。可以用下边这样代码吗? ((condition) ? a : b) = complicated expression; . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 目录iii ...
  •  本书结构清晰,讲解透彻,是各高校相关专业C语言课程很好的教学参考书,也是各层次C程序员的优秀实践指南。 作者简介 Steve Summit,著名的C语言专家。Usenet C FAQ的创始人和维护者,有近30年的C编程经验。...
  • 疯狂程序员

    热门讨论 2012-07-18 18:05:32
    比如卖车的找个好的造车的不容易,炒蛋炒饭的找只好母鸡不容易,拉广告的要找个好的做广告的更不容易。大的广告公司,别人瞧不起你;小的广告公司,绝影瞧不起别人。 一直过了半个月,这事情才总算落实,还像模像样...
  • 问题4-11:使用屏蔽双绞线电缆STP安装以太网是否可获得更好的效果? 问题4-12:如果将已有的10 Mb/s以太网升级到100 Mb/s,试问原来使用的连接导线是否还能继续使用? 问题4-13:使用5类线的10BASE-T以太网的最大...
  • 俗话说得,语言不通怎么啪啪啪,所以只有当两只小喵呜懂相同语言时候他们才能交流才能成为好朋♂友♀。当然就算两只小喵呜不懂同种语言也可以请其他小喵呜当翻译。换句话说,小喵呜A和小喵呜B可以成为朋友...

    ####题目描述
    狗逼喵养了只小喵呜,编号1-N。第i只小喵呜懂M_i种语言。
    俗话说得好,语言不通怎么啪啪啪,所以只有当两只小喵呜懂相同的语言的时候他们才能交流才能成为好朋♂友♀。

    当然就算两只小喵呜不懂同一种语言也可以请其他小喵呜当翻译。换句话说,小喵呜A和小喵呜B可以成为好朋友的前提是存在一个序列A,T_1,T_2,…,T_k,B(k>=0),其中A和T_1都会说某一种语言,T_1和T_2也都会说某一种语言…,并且T_k和B会说某一种语言。

    狗逼喵希望他的小喵呜都能成为好朋♂友♀,于是他决定买一些技能书教某些小喵呜一些语言。但是狗逼喵最近比较穷他想知道他最少需要买多少本书。(注:一本书仅能对一只喵呜使用,并且只能教会这只喵呜一种语言)

    ####输入格式

    第一行输入一个整数T,表示有T组数据,对于每组数据,第一行输入一个n表示有n(n<=10000)只小喵呜,接下来输入n行。第i行先输入一个M_i(0<=M_i<=10)表示第i只小喵呜懂M_i种语言。接下来输入M_i个数表示这只小喵呜懂的语言编号(1<=编号<=10^7)

    ####输出

    每组数据输出一个数,表示狗逼喵最少要买多少本书。

    ####样例输入

    1
    3
    1 1
    2 1 2
    1 3

    ####样例输出

    1

    思路:利用一个record的数组来记录其中一只会第i种语言的猫的编 号。然后并查集。但是注意,因为猫会的语言的编号是1~107,但是总共有104只猫,每只猫至多会10种语言。所以总共可能出现的语言数最多为10^5。所以需要离散化。

    #include <iostream>
    #include <cstdio>
    #include <string>
    #include <algorithm>
    using namespace std;
    
    struct Miao {
    	int cat;
    	int lantot;
    	int language[11];
    }M[100005];
    int al;
    int reflex[100005];//离散化
    int record[100005];
    int f[100005];
    
    int Find(int x) {
    	if (f[x] == x) return x;
    	return f[x] = Find(f[x]);
    }
    
    int BinarySearch(int x) {
    	int l = 0, r = al;
    	if (reflex[r] == x) return r;
    	while (r - l > 1) {
    		int m = (l + r) >> 1;
    		if (reflex[m] > x)
    			r = m;
    		else
    			l = m;
    	}
    	return l;
    }
    
    int main() {
    	int t;
    	scanf("%d", &t);
    	for (int ca = 1; ca <= t; ca++) {
    		int n, all = 0;
    		scanf("%d", &n);
    		al = 0;
    		for (int i = 1; i <= n; i++) {
    			int m;
    			scanf("%d", &m);
    			M[i].lantot = 0;
    			M[i].cat = i;
    			for (int j = 1; j <= m; j++) {
    				int x;
    				scanf("%d", &x);
    				M[i].language[M[i].lantot++] = x; 
    				reflex[all++] = x;
    			}
    		}
    		
    		//离散化
    		sort(reflex, reflex + all);
    		for (int i = 1; i < all; i++)
    			if (reflex[i] != reflex[al]) reflex[++al] = reflex[i];
    		
    		//并查集
    		for (int i = 1; i <= n; i++) f[i] = i;
    		memset(record, 0, sizeof(record));
    		
    		for (int i = 1; i <= n; i++) {
    			for (int j = 0; j < M[i].lantot; j++) {
    				int x = BinarySearch(M[i].language[j]) + 1;
    				if (record[x] == 0) 
    					record[x] = M[i].cat;
    				f[Find(M[i].cat)] = Find(record[x]);
    			}
    		}
    		
    		for (int i = 1; i <= n; i++) f[i] = Find(i);
    		sort(f + 1, f + n + 1);
    		
    		int x = f[1];
    		int need = 0;
    		
    		for (int i = 1; i <= n; i++) {
    			if (f[i] != x) {
    				need++;
    				x = f[i];
    			}
    		}
    		printf("%d\n", need);
    	}
    	return 0;
    }
    
    展开全文
  • 例如定义一个包含 N 个指向返回指向字符指针函数指针数组? o 2.8 函数只定义了一次, 调用了一次, 但编译器提示非法重定义了。 o 2.9 main() 正确定义是什么? void main() 正确吗? o 2.10 对于没有...
  • 当找到一个好的解决方案,他们会一遍又一遍地使用。这些经验是他们成为内行的部分原因。它们 帮助设计者将新的设计建立在以往工作的基础上,复用以往成功的设计方案。一个熟悉这些模式的 设计者不需要再去发现它们,...
  • VB课程设计俄罗斯方块

    热门讨论 2011-02-25 10:46:55
    才能由横着变成竖立状态,游戏区图形框中第三行一个方块编号为20,所以长条造型一个小方块编号n(0)必须要大于20。同样,长条型方块在下落到底部时候也有限制。如果长条下落到最后一行也将无法由横着...
  • B) 图形工具能够极地概括描述一个系统信息,比文字叙述能够更地表达重 要细节 C) 图形能够更加直观地描述目标系统,便于用户理解和交流,有利于开发者与用 户之间达成一致需求 D) 图形比文字描述简单、...
  • 问题4-18:路由表中只给出到目的网络下一跳路由器IP地址,然后在下一个路由器路由表中再给出再下一跳路由器IP地址,最后才能到达目的网络进行直接交付。采用这样方法有什么好处? 问题4-19:链路层广播...
  • 2020/3/11 为了更好地了解需求,邀请您填写调查问卷,以便为大家提供更好的资源。 2020/2/26 哈工大讯飞联合实验室发布知识蒸馏工具TextBrewer 2020/1/20 祝大家鼠年大吉,本次发布了RBT3、RBTL3(3层RoBERTa-wwm-...
  • java 面试题 总结

    2009-09-16 08:45:34
    多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 2、String是最基本的数据类型吗? 基本数据类型包括byte、int、char、long、float、double、boolean和short。 java.lang....
  • 韩顺平oracle学习笔记

    2018-07-08 00:16:48
    记住:欲速则不达,做任何事情要遵循他规律,循序渐进,信心很重要 成为一个oracle高手过程:理解小知识点->做小练习->把小只是点连成线->做oracle项目->形成只是面->深刻理解 Oracle基础部分:oracle基础使用; ...
  • Axx:ARJ压缩文件分包序号文件,用于将一个大文件压至几个小压缩包中(xx取01-99数字) A3L:Authorware 3.x库文件 A4L:Authorware 4.x库文件 A5L:Authorware 5.x库文件 A3M,A4M:Authorware Macintosh...

空空如也

空空如也

1
收藏数 20
精华内容 8
关键字:

怎么才能成为一个好的m