-
你必须知道的495个C语言问题
2015-10-16 14:14:286.17 有个很好的窍门,如果我这样写:intrealarray[10];int*array=&realarray[-1];我就可以把“array”当作下标从1 开始的数组。 函数和多维数组 6.18 当我向一个接受指针的指针的函数传入二维数组的时候,编译器... -
《你必须知道的495个C语言问题》
2010-03-20 16:41:18《你必须知道的495个C语言问题》结构清晰,讲解透彻,是各高校相关专业C语言课程很好的教学参考书,也是各层次C程序员的优秀实践指南。 -----------------------------------------------------------------------... -
你必须知道的495个C语言问题(高清版)
2010-03-31 16:24:09可我找不到任何方法来声明这样的函数——感觉我需要一个返回指针的函数,返回的指针指向的又是返回指针的函数……,如此往复,以至无穷。 12 数组大小 13 1.23 能否声明和传入数组大小一致的局部数组,或者由... -
你必须知道的495个C语言问题.pdf
2013-01-20 14:30:54本书结构清晰,讲解透彻,是各高校相关专业C语言课程很好的教学参考书,也是各层次C程序员的优秀实践指南。 作者简介 Steve Summit,著名的C语言专家。Usenet C FAQ的创始人和维护者,有近30年的C编程经验。... -
你必须知道的495个C语言问题(PDF)
2009-09-15 10:25:473.12 我需要根据条件把一个复杂的表达式赋值给两个变量中的一 个。可以用下边这样的代码吗? ((condition) ? a : b) = complicated expression; . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 目录iii ... -
[你必须知道的495个C语言问题]人民邮电出版社.扫描版.pdf
2011-10-01 21:39:52本书结构清晰,讲解透彻,是各高校相关专业C语言课程很好的教学参考书,也是各层次C程序员的优秀实践指南。 作者简介 Steve Summit,著名的C语言专家。Usenet C FAQ的创始人和维护者,有近30年的C编程经验。... -
疯狂的程序员
2012-07-18 18:05:32比如卖车的找个好的造车的不容易,炒蛋炒饭的找只好母鸡不容易,拉广告的要找个好的做广告的更不容易。大的广告公司,别人瞧不起你;小的广告公司,绝影瞧不起别人。 一直过了半个月,这事情才总算落实,还像模像样... -
清华大学的计算机网络课件
2010-03-26 11:11:56问题4-11:使用屏蔽双绞线电缆STP安装以太网是否可获得更好的效果? 问题4-12:如果将已有的10 Mb/s以太网升级到100 Mb/s,试问原来使用的连接导线是否还能继续使用? 问题4-13:使用5类线的10BASE-T以太网的最大... -
校赛 (离散化 + 并查集)
2015-04-27 12:27:32俗话说得好,语言不通怎么啪啪啪,所以只有当两只小喵呜懂相同的语言的时候他们才能交流才能成为好朋♂友♀。当然就算两只小喵呜不懂同一种语言也可以请其他小喵呜当翻译。换句话说,小喵呜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; }
-
C语言FAQ 常见问题列表
2010-10-28 16:41:29例如定义一个包含 N 个指向返回指向字符的指针的函数的指针的数组? o 2.8 函数只定义了一次, 调用了一次, 但编译器提示非法重定义了。 o 2.9 main() 的正确定义是什么? void main() 正确吗? o 2.10 对于没有... -
常用设计模式及 Java程序设计(含java源码)
2010-01-15 11:33:38当找到一个好的解决方案,他们会一遍又一遍地使用。这些经验是他们成为内行的部分原因。它们 帮助设计者将新的设计建立在以往工作的基础上,复用以往成功的设计方案。一个熟悉这些模式的 设计者不需要再去发现它们,... -
VB课程设计俄罗斯方块
2011-02-25 10:46:55才能由横着变成竖立状态,游戏区图形框中第三行的第一个方块的编号为20,所以长条造型的第一个小方块的编号n(0)必须要大于20。同样,长条型方块在下落到底部的时候也有限制。如果长条下落到最后一行也将无法由横着... -
软件工程-理论与实践(许家珆)习题答案
2011-01-12 00:49:42B) 图形工具能够极好地概括描述一个系统的信息,比文字叙述能够更好地表达重 要的细节 C) 图形能够更加直观地描述目标系统,便于用户理解和交流,有利于开发者与用 户之间达成一致的需求 D) 图形比文字描述简单、... -
计算机网络常见问题解答
2010-06-07 08:19:11问题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基础使用; ... -
网管教程 从入门到精通软件篇.txt
2010-04-25 22:43:49Axx:ARJ压缩文件的分包序号文件,用于将一个大文件压至几个小的压缩包中(xx取01-99的数字) A3L:Authorware 3.x库文件 A4L:Authorware 4.x库文件 A5L:Authorware 5.x库文件 A3M,A4M:Authorware Macintosh...
收藏数
20
精华内容
8
-
【Python-随到随学】FLask第二周
-
ELF视频教程
-
MaxScale 实现 MySQL 读写分离与负载均衡
-
跨境电商ERP中的自动化 5.平台订单自动打印面单
-
TL1771_Rev4_Reference Guide_International_20050811.pdf
-
TL1765_V0.0_20070719.pdf
-
新想法!Geoffrey Hinton独自署名44页论文,如何在神经网络中表示部分-整体层次结构,结构化表示获取可解释性
-
TL1771 Qualification Report_20050110.pdf
-
Amoeba 实现 MySQL 高可用、负载均衡和读写分离
-
高性能计算资源及安装配置使用
-
TL1769S_V0.0_20060315.pdf
-
【深入理解JVM 一】一个Java程序的执行流程
-
自定义拍照、录制视频工具类.zip
-
深究字符编码的奥秘,与乱码说再见
-
定时器初值计算.rar
-
java-productor-consummer
-
SSD2119.pdf
-
TL1771_Initial_Rev0.0.pdf
-
【LeetCode刷题笔记-64 303. 区域和检索 - 数组不可变】
-
工程制图 AutoCAD 2012 从二维到三维