E. The LCMs Must be Large(思维)
题目链接:https://codeforces.com/contest/1166/problem/E
题目大意:首先是n个数,然后有m次划分,每一次输入第一部分(下标),第一部分的补给为第二部分。然后问你能否(给a数组赋值)保证每一次的第一部分的数的lcm严格大于第二部分的lcm。
具体思路:
首先说一个性质,集合A为集合B的子集,那么lcm(A)<= lcm(B)。
反证法:
假设当前输入的m为2,我们将每一次输入分为
D1 S1
D2 S2.
假设D1与D2的交集为0 - > D2一定为S1的子集 - > D1一定为S2的子集 .
假设输入的样例合法。
那么lcm(D1)>lcm(S1)>= lcm(D2)> lcm(S2)> = lcm(D1)。
显然矛盾。
我们当前就可以得到这个结论,当任意两组的交集为0的时候,这个时候一定是不合法的。
接下来再去证明当两组的交集不是0的时候,一定是合法的。
我们假设a数组的数全部为1.当输入第i组的时候,D1中的数全部乘以第i个素数。以此类推。
这样的话,我们所有的Di的lcm都为前i个素数相乘的结果。
Si肯定为Di的真子集。
AC代码:
1 #include<bits/stdc++.h> 2 using namespace std; 3 # define ll long long 4 # define inf 0x3f3f3f3f 5 # define ull unsigned long long 6 const int maxn = 2e4+100; 7 const int N = 55; 8 int sto[N][maxn]; 9 int num[maxn]; 10 int main() 11 { 12 int n,m,tmp; 13 scanf("%d %d",&n,&m); 14 for(int i=1; i<=n; i++) 15 { 16 scanf("%d",&num[i]); 17 for(int j=1; j<=num[i]; j++) 18 { 19 scanf("%d",&tmp); 20 sto[i][tmp]++; 21 } 22 } 23 int flag=1; 24 for(int i=1; i<=n; i++) 25 { 26 for(int j=1; j<=n; j++) 27 { 28 int flag=1; 29 for(int k=1; k<=10000; k++) 30 { 31 if(sto[i][k]&&sto[j][k]) 32 { 33 flag=0; 34 break; 35 } 36 } 37 if(flag) 38 { 39 printf("impossible\n"); 40 return 0; 41 } 42 } 43 } 44 printf("possible\n"); 45 return 0; 46 }
转载于:https://www.cnblogs.com/letlifestop/p/10901836.html
E. The LCMs Must be Large(思维)相关推荐
- CF1166E The LCMs Must be Large
CF1166E The LCMs Must be Large 构造趣题 正着推其实很不好推 不妨大力猜结论 如果两两集合都有交,那么一定可以 证明: 1.显然如果两个集合没有交,一定不可以 2.否则给 ...
- Codeforces - 1166E - The LCMs Must be Large
Codeforces - 1166E - The LCMs Must be Large 地址 http://codeforces.com/contest/1166/problem/E 原文地址 htt ...
- Codeforces Round #561 (Div. 2)-E. The LCMs Must be Large
地址:https://codeforces.com/contest/1166/problem/E 思路:比赛时,D,E两题都不会写,然后抱着试一试的态度对E分析,对于第i天,若其他天与该天是没有重合的 ...
- codeforces1166E. The LCMs Must be Large
题目链接 琪亚娜世界第一可爱 现在有两个人,Swiper和Dora,在m天中,每天Swiper先从n个位置上取一些数,剩下的就是Dora的数,要求在这个m天中,每天Swiper取出的数的lcm都要比D ...
- Potato的暑期训练day#1题解 ——毒瘤构造
Potato的暑期训练day#1 --毒瘤构造 题目链接: A.https://vjudge.net/problem/HDU-1214 B.https://vjudge.net/problem/Cod ...
- 常用git命令思维图
git常用命令思维导图 问题解决 一.大文件限制(超过100M) 报错提醒: remote: warning: Large files detected. remote: error: File xx ...
- b端 ux 设计思维_借助系统思维从视觉设计过渡到UX
b端 ux 设计思维 "How can I switch to UX?" This is a common question from visual designers becau ...
- 【2017年第3期】Talent Network:一个基于设计思维的企业社交网络服务
夏帆, 丁铖, 钱卫宁, 周傲英, Gopakumar Gopalakrishnan, Anjaneyulu Passala 华东师范大学 中图分类号:TP391 文献标识码:A doi:10 ...
- 程序员思维是什么?程序员思维从哪里来?程序员思维到哪里去?
程序员思维是什么? 程序员思维从哪里来? 程序员思维到哪里去? 好吧,这是三个终极的问题.没有标准答案,也没有什么不标准的答案.我只是试图给出自己的一个思考的总结. 再解释程序员思维是什么问题这个问题 ...
最新文章
- Tensorflow加载多个模型
- OpenCV的k - means聚类 -对图片进行颜色量化
- 用权值实现数据被抽取的概率
- Boost:使用find_if()算法来检测两个向量交叉的点
- python nltk lemmatizer_Python聊天机器人–使用NLTK和Keras构建第一个聊天机器人
- 算法(13)-leetcode-explore-learn-数据结构-链表小结
- 信息奥赛一本通(1119:矩阵交换行)
- 三层路由详解、为什么要划分vlan,vlan的作用是什么?
- 4.业务架构·应用架构·数据架构实战 --- 业务驱动的应用架构设计
- grads 相关系数_GrADS实习报告6
- 关于开灯问题的两种解法
- 记一些Linux/centos的基础运维命令
- 数据中台各种架构图大全
- 什么是过拟合?过拟合的10个解决办法都有哪些?
- 使用Redis如何设置永久密码
- NLP数据预处理的一般方法
- Linux 使用curl认证深信服上网行为管理
- Spring基础—装配bean(一)
- 计算机网络安全包括免疫性吗,【单选题】计算机网络安全的目标不包括A. 保密性 B. 不可否认性 C. 免疫性 D. 完整性...
- java8新特性 Stream流之根据条件过滤统计个数