#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. elasticsearch5.3.0 bulk index 性能调优实践

    elasticsearch5.3.0 bulk index 性能调优实践 通俗易懂

  2. Android布局需要知道的基础知识

    eclipse配置环境变量: 1.在 eclipse 中的 Window --> preferences  --> Android(安装了ADT的前提下才能看到Android) --> ...

  3. Caffe2:使用Caffe构建LSTM网络

    前言: 一般所称的LSTM网络全叫全了应该是使用LSTM单元的RNN网络. 原文:(Caffe)LSTM层分析 入门篇:理解LSTM网络 LSTM的官方简介: http://deeplearning. ...

  4. THREE.js代码备份——canvas_ascii_effect(以AscII码显示图形)

    <!DOCTYPE html> <html lang="en"> <head> <title>three.js - ASCII Ef ...

  5. Java设计模式之JDK动态代理原理

    动态代理核心源码实现public Object getProxy() { //jdk 动态代理的使用方式 return Proxy.newProxyInstance( this.getClass(). ...

  6. luoguP3979 遥远的国度 LCT+multiset维护子树信息

    Code: #include<bits/stdc++.h> #define maxn 150000 #define ll long long #define inf 21474836470 ...

  7. jsp+servlet 导出Excel表格

    1.项目的目录结构 2.创建一个用户类,下面会通过查询数据库把数据封装成用户实例列表 package csh.entity; /** * @author 悦文 * @create 2018-10-24 ...

  8. eas快捷键

    ctrl+shift+c  获取分录行的id ctrl+alt+[  获取任意界面操作的信息  

  9. codeforces 466B Wonder Room(思维,暴力)

    题目 参考了别人的博客,百度来的博客 #include<iostream> #include<string> #include<stdio.h> #include& ...

  10. HDU 4405 Aeroplane chess(概率dp,数学期望)

    题目 http://kicd.blog.163.com/blog/static/126961911200910168335852/ 根据里面的例子,就可以很简单的写出来了,虽然我现在还是不是很理解为什 ...