#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<queue>
#include<map>
#include<set>
#include<vector>
#include<cstdlib>
#include<string>
#define eps 0.000000001
typedef long long ll;
typedef unsigned long long LL;
using namespace std;
const int maxc=;
const int maxk=;
set<int>value[maxc];
int C,x[maxc],k[maxc];
int y[maxc][maxk];
int a[maxc];
ll exgcd(ll a,ll b,ll &xx,ll &yy){
if(b==){
xx=;yy=;return a;
}
ll r=exgcd(b,a%b,xx,yy);
ll t=yy;
yy=xx-(a/b)*yy;
xx=t;
return r;
}
ll CRT(int a[],int m[],int n){//ÖйúÊ£ÓඨÀí
ll M=;
ll ans=;
for(int i=;i<n;i++)M=M*m[i];
for(int i=;i<n;i++){
ll Mi=M/m[i];
ll xx,yy;
ll r=exgcd(Mi,(ll)m[i],xx,yy);
ans=(ans+xx*a[i]*Mi)%M;
}
if(ans<)ans=(ans+M)%M;
return ans;
}
void solve_enum(int S,int bc){
for(int c=;c<C;c++)
if(c!=bc){
value[c].clear();
for(int i=;i<k[c];i++)value[c].insert(y[c][i]); }
for(int t=;S!=;t++){
for(int i=;i<k[bc];i++)
{
ll n=(ll)x[bc]*t+y[bc][i];
if(n==)continue;
bool ok=true;
for(int c=;c<C;c++)if(c!=bc)
if(!value[c].count(n%x[c])){ok=false;break;}
if(ok){
printf("%lld\n",n);
if(--S==)break;
}
}
}
}
vector<ll>sol;
void dfs(int dep){
if(dep==C)sol.push_back(CRT(a,x,C));
else{
for(int i=;i<k[dep];i++){
a[dep]=y[dep][i];
dfs(dep+);
}
}
}
void solve_china(int S){
sol.clear();
dfs();
sort(sol.begin(),sol.end());
ll M=;
for(int i=;i<C;i++)M=M*x[i];
vector<ll>ans;
for(int i=;S!=;i++){
for(int j=;j<sol.size();j++){
ll n=M*i+sol[j];
if(n>){
printf("%lld\n",n);
if(--S==)break;
}
}
}
}
int main(){
int S;
while(scanf("%d%d",&C,&S)!=EOF){
if(C==&&S==)break;
ll tot=;
int bestc=;
for(int c=;c<C;c++){
scanf("%d%d",&x[c],&k[c]);
tot=tot*k[c];
for(int i=;i<k[c];i++)scanf("%d",&y[c][i]);
sort(y[c],y[c]+k[c]);
if(k[c]*x[bestc]<k[bestc]*x[c])bestc=c;
}
if(tot>)solve_enum(S,bestc);
else{
// cout<<1<<endl;
solve_china(S);
}
cout<<endl;
}
}

Uva 11754(枚举+中国剩余定理)的更多相关文章

  1. UVA 11754 (暴力+中国剩余定理)

    题目链接: http://www.bnuoj.com/v3/problem_show.php?pid=20172 题目大意:有C个模方程,每个方程可能有k余数,求最小的S个解. 解题思路: 看见模方程 ...

  2. UVA 11754 Code Feat 中国剩余定理+枚举

    Code FeatUVA - 11754 题意:给出c个彼此互质的xi,对于每个xi,给出ki个yj,问前s个ans满足ans%xi的结果在yj中有出现过. 一看便是个中国剩余定理,但是同余方程组就有 ...

  3. UVa 11754 (中国剩余定理 枚举) Code Feat

    如果直接枚举的话,枚举量为k1 * k2 *...* kc 根据枚举量的不同,有两种解法. 枚举量不是太大的话,比如不超过1e4,可以枚举每个集合中的余数Yi,然后用中国剩余定理求解.解的个数不够S个 ...

  4. UVA 11754 Code Feat (枚举,中国剩余定理)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud C Code Feat   The government hackers at C ...

  5. uva 11754 Code Feat (中国剩余定理)

    UVA 11754 一道中国剩余定理加上搜索的题目.分两种情况来考虑,当组合总数比较大的时候,就选择枚举的方式,组合总数的时候比较小时就选择搜索然后用中国剩余定理求出得数. 代码如下: #includ ...

  6. UVA 11754 - Code Feat(数论)

    UVA 11754 - Code Feat 题目链接 题意:给定一个c个x, y1,y2,y3..yk形式,前s小的答案满足s % x在集合y1, y2, y3 ... yk中 思路:LRJ大白例题, ...

  7. ACM/ICPC 之 中国剩余定理+容斥原理(HDU5768)

    二进制枚举+容斥原理+中国剩余定理 #include<iostream> #include<cstring> #include<cstdio> #include&l ...

  8. Uva 11754 Code Feat

    题意概述: 有一个正整数$N$满足$C$个条件,每个条件都形如“它除以$X$的余数在集合$\{Y_1, Y_2, ..., Y_k\}$中”,所有条件中的$X$两两互质, 你的任务是找出最小的S个解. ...

  9. POJ 1006 Biorhythms (中国剩余定理)

    在POJ上有译文(原文右上角),选择语言:简体中文 求解同余方程组:x=ai(mod mi) i=1~r, m1,m2,...,mr互质利用中国剩余定理令M=m1*m2*...*mr,Mi=M/mi因 ...

随机推荐

  1. P2241 统计方形(数据加强版)

    题目背景 1997年普及组第一题 题目描述 有一个n*m方格的棋盘,求其方格包含多少正方形.长方形 输入输出格式 输入格式: n,m因为原来数据太弱,现规定m小于等于5000,n小于等于5000(原来 ...

  2. Django学习案例一(blog):六. 开发博客内容页面

    目标:某条博客具体内容的展示,可返回博客主页面,可进行评论. 1. 编辑路由 一篇博客,要将其找出来,就需要有一个唯一的标识.Django 的模型中默认有一个唯一的且未自增长的主键,即 id 字段.我 ...

  3. ASP.NET访问网络驱动器(映射磁盘)

    也许很多朋友在做WEB项目的时候都会碰到这样一个需求: 当用户上传文件时,需要将上传的文件保存到另外一台专门的文件服务器. 要实现这样一个功能,有两种解决方案: 方案一.在文件服务器上新建一站点,用来 ...

  4. dubbo之负载均衡

    在集群负载均衡时,Dubbo提供了多种均衡策略,缺省为random随机调用. Random LoadBalance 随机,按权重设置随机概率. 在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按 ...

  5. C++版的LLC代码

    图像稀疏编码总结:LLC和SCSPM,文章对稀疏编码讲解非常详细. <Locality-constrained Linear Coding for Image Classification> ...

  6. js 验证文件格式和大小

    <script> $('#btnSearch').click(function(){ // alert("000");// fileElem = document.ge ...

  7. js手机移动端选择插件 mobileSelect.js

    一.mobileSelect获取方法 mobileSelect支持单选.多级联动.自定义回调函数.二次渲染.最新版本下载地址[2017-09-21更新]: https://github.com/onl ...

  8. spring实现helloWord

    第一步:添加架包 第二步:写一个简单的实列 package com.java.test; /** * @author nidegui * @create 2019-06-22 10:58 */ pub ...

  9. 切换原生appium里面H5页面

    #coding = utf-8from appium import webdriverimport time'''1.手机类型2.版本3.手机的唯一标识 deviceName4.app 包名appPa ...

  10. eas之日期选择控件

    初始化打印控件KDPrinter ctrlPrinter = new KDPrinter(); 增加列 // 指定插入位置table.addColumn(index);// 插入到最后table.ad ...