Widget Factory
有N种零件,生产所需天数都为3~9天,有M条记录,记录开工星期几,和停工星期几,并告诉你这条记录所加工的零件,求每种零件的生产时间,\(1≤N,M≤300\)。
解
显然可以对于一条记录列出关于x的方程(设t为从开工到停工的最短时间,\(\{a_i\}\)表示每个零件的生产时间,\(\{b_i\}\)表示每个零件加工的多少)
\]
自然对于每个方程都有x这个未知数,没办法解,但是x前的系数都是7,考虑同余高斯消元,于是有
\]
对于每条记录,列出这样的方程,你可以根据lcm来消元,也可以通过逆元来消元,最好选择以已解方程个数作为高斯消元的主体,剩下的与套路无疑。
参考代码:
#include <iostream>
#include <cstdio>
#include <map>
#include <cstring>
#define il inline
#define ri register
#define swap(x,y) x^=y^=x^=y
using namespace std;
int inv[8],jz[301][301],dis[8][8];
map<string,int>day;
il void mod(int&);
int main(){
inv[1]=1,day["MON"]=1,day["TUE"]=2,day["WED"]=3;
day["THU"]=4,day["FRI"]=5,day["SAT"]=6,day["SUN"]=7;
int n,m,i,j,k;
for(i=2;i<7;++i)inv[i]=-inv[7%i]*(7/i)%7,mod(inv[i]);
for(i=1;i<=7;++i){
dis[i][i]=1;
for(j=i+1;j<=7;++j)
dis[i][j]=j-i+1,dis[j][i]=9-dis[i][j];
}
while(scanf("%d%d",&n,&m),n&&m){
memset(jz,0,sizeof(jz));
for(i=1;i<=m;++i){
char s[4],t[4];
scanf("%d%s%s",&k,s,t);
jz[i][0]=dis[day[s]][day[t]];
while(k--)scanf("%d",&j),++jz[i][j];
for(j=0;j<=n;++j)jz[i][j]%=7;
}int w(0);
for(i=1;i<=n;++i){
for(j=w+1;j<=m;++j)
if(jz[j][i])break;if(j>m)continue;++w;
if(j!=w)for(k=0;k<=n;++k)swap(jz[w][k],jz[j][k]);
(jz[w][0]*=inv[jz[w][i]])%=7;
for(j=n;j>=i;--j)(jz[w][j]*=inv[jz[w][i]])%=7;
for(j=1;j<=m;++j){
if(!jz[j][i]||w==j)continue;
mod(jz[j][0]-=jz[w][0]*jz[j][i]);
for(k=n;k>=i;--k)
mod(jz[j][k]-=jz[j][i]*jz[w][k]);
}
}
for(i=w+1;i<=m;++i)
if(jz[i][0]){puts("Inconsistent data.");break;}
if(i<=m)continue;
if(w<n)puts("Multiple solutions.");
else{
mod(jz[i][0]),mod(jz[i][i]);
for(i=1;i<=n;++i)
if(jz[i][0]<3)printf("%d ",jz[i][0]+7);
else printf("%d ",jz[i][0]);putchar('\n');
}
}
return 0;
}
il void mod(int &x){
((x%=7)+=7)%=7;
}
Widget Factory的更多相关文章
- POJ 2947 Widget Factory(高斯消元)
Description The widget factory produces several different kinds of widgets. Each widget is carefully ...
- 使用 jQuery UI Widget Factory 编写有状态的插件(Stateful Plugins)
使用 jQuery UI Widget Factory 编写有状态的插件(Stateful Plugins) Note 这一章节的内容是基于 Scott Gonzalez 一篇博客 Building ...
- poj 2947 Widget Factory
Widget Factory 题意:有n件装饰品,有m组信息.(1 <= n ,m<= 300)每组信息有开始的星期和结束的星期(是在mod 7范围内的)并且还包括num种装饰品的种类(1 ...
- Widget Factory (高斯消元解线性方程组)
The widget factory produces several different kinds of widgets. Each widget is carefully built by a ...
- 软件公司的两种管理方式 总体来说,这个世界上存在两种不同的软件公司的组织结构。我把他们叫做 Widget Factory(小商品工厂) 和 Film Crews(电影工作组
软件公司的两种管理方式 一个简单的回答应该是——“因为在我们的社会里,我们总是会认为薪水和会和职位的层次绑在一起”.但是,这个答案同时也折射出一个事实——我们的薪资是基于我们的所理解的价值,但这并没有 ...
- 通过扩展jQuery UI Widget Factory实现手动调整Accordion高度
□ 实现Accordion高度一致 <head> <meta name="viewport" content="width=device-width&q ...
- 【POJ】2947 Widget Factory(高斯消元)
http://poj.org/problem?id=2947 各种逗啊..还好1a了.. 题意我就不说了,百度一大把. 转换为mod的方程组,即 (x[1,1]*a[1])+(x[1,2]*a[2]) ...
- POJ Widget Factory 【求解模线性方程】
传送门:http://poj.org/problem?id=2947 Widget Factory Time Limit: 7000MS Memory Limit: 65536K Total Su ...
- UVA 1564 - Widget Factory(高斯消元)
UVA 1564 - Widget Factory 题目链接 题意:n种零件, 给定m个制作时间.每段时间制作k个零件,每种零件有一个制作时间,每段时间用Mon到Sun表示,求每一个零件的制作时间.还 ...
- Extending Widgets with the Widget Factory
https://learn.jquery.com/jquery-ui/widget-factory/extending-widgets/ 实例 https://github.com/tkvw/jQue ...
随机推荐
- spring boot部署到阿里云碰到的总总问题
2375错误,我没装docker,从pom中删了吧 mysql,不能写本机对外,得写127.0.0.1. 如何生成jar包,在pom中写上jar <groupId>com.coding&l ...
- 一幅图解决R语言绘制图例的各种问题
一幅图解决R语言绘制图例的各种问题 用R语言画图的小伙伴们有木有这样的感受,"命令写的很完整,运行没有报错,可图例藏哪去了?""图画的很美,怎么总是图例不协调?" ...
- jquery操作html元素之( 获得内容和属性)
* jQuery - 获得内容和属性 jQuery DOM 操作 jQuery 中非常重要的部分,就是操作 DOM 的能力. jQuery 提供一系列与 DOM 相关的方法,这使访问和操作元素和属性变 ...
- 2- SQL语句的强化
查询类型cate_name为 '超极本' 的商品名称.价格 select name,price from goods where cate_name = '超级本'; 显示商品的种类 select c ...
- 解决在python中进行CGI编程时无法响应的问题
问题:我期望的效果是,后端解析脚本后,将结果返回给我,而不是将代码返回给我或者是让我下载文件. 参考地址:https://blog.csdn.net/C_chuxin/article/details/ ...
- Vue.js小游戏:测试CF打狙速度
此项目只测试反应速度,即手点击鼠标的反应速度 html代码 <div id="top">请等待图片变颜色,颜色便的那一刻即可点击测手速</div> < ...
- 【2-SAT】[JSOI2010]满汉全席
感觉方法和题解差不多,但是题解写的好烦啊...也不是烦,就是很复杂 这里建议开一个数组表示当前这个点选或者不选的编号,这样之后自己理思路也会清楚一点 然而我调了一个小时才发现我是Tarjan写错了.. ...
- System.arraycopy复制数组方法解释
**/* * @param src the source array.源数组 * @param srcPos starting position in the source array.源数组要复制的 ...
- Java 虚拟机 - GC机制
GC机制的一些总结 https://blog.csdn.net/super_qing_/article/details/85263991 https://blog.csdn.net/yhyr_ycy/ ...
- Java 基础 - 如何重写equals()
ref:https://www.cnblogs.com/TinyWalker/p/4834685.html -------------------- 编写equals方法的建议: 显示参数命名为oth ...