#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. Java 基本的递归写法

    1.首先我们得有一个树状结构的表,类似这种结构.必须得有 id,pid  其他的根据需要来. 我们叫它treeTbl表吧.这里pid为0的表示是顶级节点. 2.接着select * from tree ...

  2. CruiseControl.NET 的安装与配置

    CC.NET 是 CruiseControl.NET 的简称,官方网站在这里. 官方的定义是自动连续集成服务, 使用Microsoft .NET Framework实现. 另外它还有Java的版本叫做 ...

  3. 复习java基础第二天(异常处理)

    一.常见的异常类型: public class TestException { public static void main(String[] args) { int i = 10; //数学异常: ...

  4. QS之force(3)

    Example in project - First force signals in certain time and then noforce signals after some time. # ...

  5. 【sqli-labs】 less26a GET- Blind based -All you SPACES and COMMENTS belong to us -String-single quotes-Parenthesis(GET型基于盲注的去除了空格和注释的单引号括号注入)

    这个和less26差不多,空格还是用%a0代替,26过了这个也就简单了 ;%00 可以代替注释,尝试一下 order by 3 http://192.168.136.128/sqli-labs-mas ...

  6. JDK8新特性:Lambda表达式

    Lambda表达式,案例一:new Thread(() -> System.out.println("thread")); Lambda表达式,案例二:由参数/箭头和主体组成 ...

  7. tomcat多实例的部署

    解压部署tomcat程序创建2个实例的工作目录mkdir -p /usr/local/tomcat8_instance/tomcat1mkdir -p /usr/local/tomcat8_insta ...

  8. 类型转换、分支(day05)

    如果表达式里包含多个不同类型的数字就必须 首先把它们转换成同一个类型然后才能 计算 这个转换过程叫做隐式类型转换,完全由 计算机完成 隐式类型转换过程中一定把占地小的类型转换 成占地大的类型 如果不同 ...

  9. Python-jquery-datatable服务器分页.

    第一步: js初始化: part01:ajax设置 part02:语言设置 part03: 行列设置: part04: 具体渲染设置: 第二部: 服务端设置: 第一部分 获取固定表示: 第二部分 对数 ...

  10. ELK之Logstash配置文件详解

    Logstash 是一个开源的数据收集引擎,它具有备实时数据传输能力.它可以统一过滤来自不同源的数据,并按照开发者的制定的规范输出到目的地.它以插件的形式来组织功能,通过配置文件来描述需要插件做什么, ...