Uva 11754(枚举+中国剩余定理)
#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(枚举+中国剩余定理)的更多相关文章
- UVA 11754 (暴力+中国剩余定理)
题目链接: http://www.bnuoj.com/v3/problem_show.php?pid=20172 题目大意:有C个模方程,每个方程可能有k余数,求最小的S个解. 解题思路: 看见模方程 ...
- UVA 11754 Code Feat 中国剩余定理+枚举
Code FeatUVA - 11754 题意:给出c个彼此互质的xi,对于每个xi,给出ki个yj,问前s个ans满足ans%xi的结果在yj中有出现过. 一看便是个中国剩余定理,但是同余方程组就有 ...
- UVa 11754 (中国剩余定理 枚举) Code Feat
如果直接枚举的话,枚举量为k1 * k2 *...* kc 根据枚举量的不同,有两种解法. 枚举量不是太大的话,比如不超过1e4,可以枚举每个集合中的余数Yi,然后用中国剩余定理求解.解的个数不够S个 ...
- UVA 11754 Code Feat (枚举,中国剩余定理)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud C Code Feat The government hackers at C ...
- uva 11754 Code Feat (中国剩余定理)
UVA 11754 一道中国剩余定理加上搜索的题目.分两种情况来考虑,当组合总数比较大的时候,就选择枚举的方式,组合总数的时候比较小时就选择搜索然后用中国剩余定理求出得数. 代码如下: #includ ...
- UVA 11754 - Code Feat(数论)
UVA 11754 - Code Feat 题目链接 题意:给定一个c个x, y1,y2,y3..yk形式,前s小的答案满足s % x在集合y1, y2, y3 ... yk中 思路:LRJ大白例题, ...
- ACM/ICPC 之 中国剩余定理+容斥原理(HDU5768)
二进制枚举+容斥原理+中国剩余定理 #include<iostream> #include<cstring> #include<cstdio> #include&l ...
- Uva 11754 Code Feat
题意概述: 有一个正整数$N$满足$C$个条件,每个条件都形如“它除以$X$的余数在集合$\{Y_1, Y_2, ..., Y_k\}$中”,所有条件中的$X$两两互质, 你的任务是找出最小的S个解. ...
- POJ 1006 Biorhythms (中国剩余定理)
在POJ上有译文(原文右上角),选择语言:简体中文 求解同余方程组:x=ai(mod mi) i=1~r, m1,m2,...,mr互质利用中国剩余定理令M=m1*m2*...*mr,Mi=M/mi因 ...
随机推荐
- 大白话理解箭头函数this
var obj1={ num:4, fn:function(){ num:5; var f=() => { num:6; console.log(this.num); //4 外层非箭头函数包裹 ...
- 附加MySQL数据库的方法
下面讲解附加MySQL数据库的方法. (1)将“光盘\Code\04\Project\数据库”文件夹中的扩展名为.sql的文件拷贝到本地机器中. (2)在如图1所示的MySQL工作台界面中,单击Dat ...
- shiro登陆权限验证
一>引入shirojar包 <!-- shiro登陆权限控制 --> <dependency> <groupId>org. ...
- Mac下php连接mysql数据库失败解决办法
通过phpmyadmin连接mysql成功,但是通过php连接数据库失败,执行如下php语句 ? 1 @mysql_connect("localhost","root&q ...
- 【sqli-labs】 less20 POST - Cookie injections - Uagent field - Error based (POST型基于错误的cookie头部注入)
以admin admin成功登陆之后,保存并显示了cookies信息 如果不点击Delete Your Cookie!按钮,那么访问 http://localhost/sqli-labs-master ...
- (转)基于MVC4+EasyUI的Web开发框架经验总结(13)--DataGrid控件实现自动适应宽带高度
http://www.cnblogs.com/wuhuacong/p/4085725.html 在默认情况下,EasyUI的DataGrid好像都没有具备自动宽度的适应功能,一般是指定像素宽度的,但是 ...
- php 加密解密函数封装
算法一: //加密函数 function lock_url($txt,$key='yang') { $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi ...
- 13、Next Item Recommendation with Self-Attention---自注意力+CML
一.摘要: 自注意力机制------从用户历史交互中推断出项目-项目关系.学习每个项目的相对权重[用来学习用户的暂时兴趣表示] 二. 模型: 一部分是用于建模用户短期意图的自注意力机制,一部分是建模用 ...
- 设计模式 第一天 UML图,设计模式原则:开闭原则、依赖倒转原则、接口隔离原则、合成复用原则、迪米特法则,简单工厂模式
1 课程大纲 2 UML的概述 总结: UML unified model language 统一建模语言 一共有十种图: 类图 用例图 时序图 * 对象图 包图 组件图 部署图 协作图 状态图 (最 ...
- 读取linux服务器内带格式文件,转为json字符串
工具类方法:ReadTextUtil package com.dc.health.platform.common.utils; import com.alibaba.fastjson.JSONObje ...