PKU 2947 Widget Factory

工业互联网工控安全与工业质检AI大模型建设方案.pptx 立即下载
题目:http://poj.org/problem?id=2947

题意:工人生产不同的部件需要不同的时间,最少需要3天,最多需要9天。
     现有给出n种部件和m条记录,每条记录包括该工人生产部件的总数k和他开始生产时间和结束时间(只给出是周几,不给出具体时间),之后给出这K个部件跟别所属的种类。
     最后求出生产这n种部件分别所需要的时间。

思路:高斯消元,设每种部件生产一个所需要的天数为xi, 每种部件的个数为ai(1<=i<=n), 所需天数为yj(1<=j<=m), 方程组为 a1*x1+a2*x2+…………an*xn=yj mod 7.
     需要注意的是,得出的结果必须在3--9之间~~~
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <stdlib.h>
using namespace std;
const int maxn=300;
int map[maxn+10][maxn+10];
char ch[7][5]={"MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"};
int n, m, k, t, s, e;
char start[5], end[5];
int gcd(int a, int b)
{
	int tem;
	while (b)
	{
		tem=a%b, a=b, b=tem;
	}
	return a;
}
int lcm(int a, int b)
{
	return a*b/gcd(a, b);
}
int Gauss()
{
	int row, col, LCM, ta, tb;
	for (row=0, col=0; row<m, col<n; row++, col++)
	{
		int maxr=row;
		for (int i=row+1; i<m; i++) if (map[i][col]>map[row][col]) maxr=i;
		if (maxr!=row) for (int i=0; i<=n; i++) swap(map[maxr][i], map[row][i]);
		if (map[row][col]==0) {row--; continue;}
		for (int i=row+1; i<m; i++)
		{
			if (!map[i][col]) continue;
			LCM=lcm(map[row][col], map[i][col]);
			ta=LCM/map[row][col], tb=LCM/map[i][col];
			for (int j=col; j<=n; j++) map[i][j]=((map[row][j]*ta-map[i][j]*tb)%7+7)%7;
		}
	}
	for (int i=row; i<m; i++) if (map[i][n]) return -1;
	if (row<n) return 0;
	for (int i=n-1; i>=0; i--)
	{
		for (int j=i+1; j<n; j++) if (map[i][j]) map[i][n]=((map[i][n]-map[i][j]*map[j][n])%7+7)%7;
		while (map[i][n]%map[i][i]) map[i][n]+=7;
		map[i][n]=(map[i][n]/map[i][i])%7;
	}
	return 1;
}
int main()
{
	//freopen("in.txt", "r", stdin);
	while (scanf("%d %d", &n, &m)==2)
	{
		if (n==0&&m==0) break;
		memset(map, 0, sizeof(map));
		for (int i=0; i<m; i++)
		{
			scanf("%d %s %s", &k, start, end);
			for (int j=0; j<7; j++) 
			{
				if (strcmp(start, ch[j])==0) s=j;
				if (strcmp(end, ch[j])==0) e=j;
			}
			map[i][n]=(e-s+1+7)%7;
			for (int j=0; j<k; j++)
			{
				scanf("%d", &t);
				map[i][t-1]++;
			}
			for (int j=0; j<n; j++) map[i][j]=map[i][j]%7;
		}
		int flag=Gauss();
		if (flag==-1) printf("Inconsistent data.\n");
		else if (flag==0) printf("Multiple solutions.\n");
		else
		{
			for (int i=0; i<n-1; i++) 
			{
				if (map[i][n]<3) printf("%d ", map[i][n]+7);
				else printf("%d ", map[i][n]);
			}
			if (map[n-1][n]<3) printf("%d\n", map[n-1][n]+7);
			else printf("%d\n", map[n-1][n]);
		}
	}
	return 0;
}


C语言版数字锁相放大器实现指南:从复数运算到嵌入式MCU移植的坑我都帮你踩了 本文详细介绍了C语言实现数字锁相放大器的关键技术,包括复数运算优化、嵌入式MCU移植的实战经验及内存管理策略。针对STM32等资源受限平台,提供了从浮点到定点数转换的优化方案,帮助工程师高效处理微弱信号提取问题。 阅读详情

相关推荐

虎符+红明谷+ctfshow渔人杯赛后复现

目录标题虎符CTFWeb-签到MISC-你会日志分析吗红明谷CTFWeb-write_shellMISC-我的心是冰冰的ctfshow渔人杯签到抽奖感受下气氛神仙姐姐阿拉丁迷飘啊飘简单二维码我跟你拼了 虎符CTF Web-签到 参考详细分析PHP源代码后门事件及其供应链安全启示 根据文章提示,添加恶意请求头 User-Agentt: zerodiumphpinfo(); 可以看到phpinfo内容 继续构造,查看根目录下的文件 User-Agentt: zerodiumsystem('ls /');

Atkx's Blog 1981

pku2947 Widget Factory

题目链接:http://162.105.81.212/JudgeOnline/problem?id=2947题意简述:题目长,好难看。大致就是n个工人,从某个星期的x-day到某个星期的y-day,做了哪几个零件,求每个零件需要的时间。解题思路:高斯消元。看到x和y ms 不好连接起来,但是它需要的天数一定是y-x+7*k,所有系数对7取模,因为这不会影响结果,这个可以理解一下。代码:

ccsu_001的专栏 755

Netty UDP

UDP是一种无连接的协议,它并不在通信双方之间建立连接,而是直接将数据包从发送端发送到接收端。UDP不保证数据包的可靠传输,也不保证数据包的顺序,因此其传输速度通常比TCP快,且系统开销较小。然而,这也意味着UDP在某些情况下可能会丢失数据包或数据包到达的顺序错乱。

王小工小工历程 2025

pku 2947 Widget Factory 高斯消元

http://poj.org/problem?id=2947 题意: 工人生产不同的部件需要不同的时间,最少需要3天最多需要9天。 给出n种部件和m条记录,每条记录包括该工人生产部件的总数k和他开始生产时间和结束时间(只给出是周几,不给出具体时间),之后给出这K个部件跟的所属的种类。最后求出生产这n种部件分别所需要的时间。 思路: 高斯消元: 例子来讲 首先我们能够列出方程 (x ...

weixin_33705053的博客 119

H.264 Profile与Level详解:如何为不同应用场景选择合适的编码配置

本文深入解析了H.264编码标准中的Profile与Level概念,指导开发者如何为不同应用场景选择合适的配置。文章对比了Baseline、Main和High三大Profile的特性与适用场景,并解释了Level如何限定视频的分辨率、帧率与码率上限。通过实战指南,帮助读者在视频通话、在线点播和专业制作等场景中,平衡画质、兼容性与性能,实现高效编码。

rgv2345678的博客 238

【Cadence软件技巧集萃】从Capture到Allergo——分布演示从原理符号导出到网络表

Cadence软件功能多样、性能强大,但是使用起来颇费步骤,尤其是从原理图到网络表的导入步骤,没有经过上手实践还真不一定一次就能搞定哩。本文笔者用将分步演示:1、在Capture软件上绘制原理图;2、将原理图导出网络表;3、在Allergo软件上更新网络表;希望给予使用Cadence的读者有效的帮助1、本文简述了建立Capture项目的步骤,演示了调用元件符号库的方法,并绘制了电气原理图;2、针对加载元件封装库可能遇到的问题,做了排查步骤建议;

qq_33175704的博客 2532

PKU 2352 Stars

题目:http://poj.org/problem?id=2352 题意:平面上有n个星星,每个星星的等级是比该星星的X和Y坐标都小的星星的个数,给出每个星星的坐标(按y轴升序),输出等级0~n-1每个等级的星星个数。 思路:线段树,因为y轴升序给出,我们只考虑x轴就可以, 每次查询只需要查询0~x区间的个数即可。 #include #include const int maxn=320

AC_coder的专栏 1560

静态时序分析(Static Timing Analysis, STA):简介及内容导航

静态时序分析(简称STA)是用来验证数字设计时序的技术之一,另外一种验证时序的方法是时序仿真,时序仿真可以同时验证功能和时序。“时序分析”这个术语就是用来指代“静态时序分析“或”时序仿真“这两种方法之一,简单来说,时序分析的目的就是为了解决设计中的各种时序问题。STA被称为静态的原因是其对于设计的分析是静态地执行的,并不依赖于施加在输入端口上的激励。相比之下,时序仿真则可以被视作动态地执行对设计的分析,具体过程描述如下:施加一组激励,观察在这组激励下电路行为是否符合要求,然后换一组激。

Starry__的博客 1986

PKU 2104 K-th Number

题目:http://poj.org/problem?id=2104 借此题学习了一下划分树 划分树定义: 他的每个节点保存【l, r】区间的所有元素,元素的排列顺序与输入的顺序相同,但是其两个子树的元素是所有元素排序后, 有(l+r)/2个元素进入左子树,其余的进入右子树,同时  维护一个num[]变量, num[i]表示l->i中, 有多少个元素进入了左子树。 红色代表进入左子树的元素

AC_coder的专栏 1216

【k8s实战】 在离线项目混部 通过kubeflow(tf-operator)部署TensorFlow机器学习任务+prometheus/grafana监控资源使用全过程(最新 图文)

目录在离线混合部署概念最新版kubeflow部署TensorFlow部署二级目录三级目录 在离线混合部署概念 先举一个例子,众所周知的天猫双十一当天的流量非常之大,那么就需要成百上千台服务器构成一个超大集群来提供计算能力,但是双十一过去之后,集群资源就面临着浪费的局面。假设业务分为在线和离线两种模式:在线任务需要资源相对较少,但要求响应时间短;离线任务则不需要对任务进行迅速响应,但是计算量相对较大、占用资源多。那么我们应该怎么在K8S集群上完成这两种业务的部署、并且使得CPU利用率始终维持在一个比较高的水平

Eros1on的博客 1545

亚马逊跨境电商选品数据分析:Python爬虫实战指南

本文将带领大家构建一套完整的亚马逊选品数据采集与分析系统,使用最新的Python技术栈,从零开始爬取亚马逊商品数据,并进行深度分析。

2201_76125261的博客 299

PKU 2063 Investment

题目:http://poj.org/problem?id=2063 题意:Jone 有M钱,有d种股票,给出每种股票的价值和年利息,给你y年的时间,使你的钱最多。 思路:典型的完全背包,可以参见背包九讲,需要注意的是The value of a bond is always a multiple of $1000,就是股票的价值是1000的倍数,这样就可以降低 时间复杂度了。。。。

AC_coder的专栏 913

ESM2蛋白预训练模型 蛋白质、氨基酸向量表示

参考: https://github.com/facebookresearch/esm https://huggingface.co/facebook/esm2_t33_650M_UR50D https://esmatlas.com/resources?action=fold tokenizer_对输入蛋白会头尾添加cls、eos特殊字符,占两个字符长度 参考:https://github.com/facebookresearch/esm 直接clone下来代码

weixin_42357472的博客 1万+

PKU 1014 Dividing

题目:http://poj.org/problem?id=1014 题意:有6个物品,价值分别为1、2、3、4、5、6,输入6个数,代表相应的物品的个数,问的是 能不能物品分成两份,每份的价值总和相同。 思路:深搜或多重背包~~~ 好久没写了  生啊~~~ //深搜 #include #include int array[10]; int a, b, c, d, e, f; int

AC_coder的专栏 843

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

PKU 1018 Communication System

题目:http://poj.org/problem?id=1018 题意:有一个系统有n个设备,每个设备有m个制造商,每个制造商制造的设备的最大带宽和价值是不同的,       题目要求计算n个设备组成的系统中最小的带宽和总价值的最大值,有点绕~~ 思路:选出所有设备的最大带宽和最小带宽,然后从最小带宽枚举到最大带宽,找出每种设备价值最小切带宽大于当前当前带宽~~ #include #in

AC_coder的专栏 784

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

PKU 1166 The Clocks

题目:http://poj.org/problem?id=1166 题意:给出9个时钟的状态和9种操作,每种操作可以改变不同的时钟的状态,每次只能改变90度,输出最少的有序的操作序列 思路:枚举出每种操作的次数,最多为3次,保存在num数组中,判断每个时钟经过9种,每种num[j]次操作,是否为0. #include #include int flag; int state[9],

AC_coder的专栏 746

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

PKU 3624 Charm Bracelet

题目:http://poj.org/problem?id=3624 裸的0-1背包问题 #include #include #include using namespace std; const int maxn=12880; const int maxm=3500; int n, m; int dp[maxn+10], w[maxm+10], d[maxm+10]; in

AC_coder的专栏 686

PKU 1151 Atlantis

题目:http://poj.org/problem?id=1151 题意:求矩形并的面积 思路:线段树+离散化+扫描线 #include #include #include #include using namespace std; const int maxn=200; struct SegmentTree { int l, r, cover; double len, sum;

AC_coder的专栏 672

PKU 1177 Picture

题目:http://poj.org/problem?id=1177 题意:墙上贴着一些海报、照片等矩形,所有的边都为垂直或水平。每个矩形可以被其它矩形部分或完全遮盖,所有矩形合并成区域的边界周长称为轮廓周长。 思路:见陈宏论文//一维数组 #include #include #include #include using namespace std; const int max

AC_coder的专栏 647

PKU 3185 The Water Bowls

题目:http://poj.org/problem?id=3185 题意:有20只碗排成一排, 奶牛翻转其中的一只碗, 其左右的碗都会跟着翻转,现在给出20只晚的初始状态,问需要至少多少次的翻转才能使所有碗都朝上。 思路:高斯消元+枚举自由变元。很容易想到如何建立方程组,一共有20个变元和20个方程组,如果有多个自由变元,需要枚举自由变元算出翻转次数,然后取最小值~~~ #include

AC_coder的专栏 626

PKU 1083 Moving Tables

题目:http://poj.org/problem?id=1083 题意:有两排房间,每排200个房间,现在要搬桌子,每搬一次花费10分钟,同一段走廊不能同时使用,求至少花费多长时间。 思路:因为每搬一次桌子就要使用一次s到j的走廊,因此,每次s到j的区间加1,最后求出使用次数最多的*10,即为答案。      需要注意的是,当s为偶数的时候,s--,当t为奇数的时候, t++; #incl

AC_coder的专栏 626

PKU 2761 Feed the dogs

题目:http://poj.org/problem?id=2761 题意:有n个数,给m个区间,求这m个区间的地K大值 思路:裸划分树,与2104相同~~ #include #include #include using namespace std; const int maxn=100000; int n, m, a, b, c; int sorted[m

AC_coder的专栏 588

PKU 1830 开关问题

题目:http://poj.org/problem?id=1830 学完高斯消元做的第一题, 高斯消元的难点在于怎样建立方程组,来建立系数矩阵。如何建方程组:http://blog.youkuaiyun.com/shiren_Bod/article/details/5766907,写的很好, 学习了~~。 此题需要注意的是,初始化矩阵时,开关I和J不要弄反了~~~ 如果有自由变元,返回1

AC_coder的专栏 585

PKU 1651 Multiplication Puzzle

题目:http://poj.org/problem?id=1651 题意:有n个数,取走一个数,计算这个数和他左右两边数的乘积,不允许取最左边和最右边的数,求每次所得的数和的最小值。 思路:不知道怎么DP, 看了discuss, 原来跟矩阵链乘一样,里边分析的很明白了 贴出来~~~, 学习 对于整个牌的序列,最左端和最右端的牌是不能被取走的,除这两张以外的所有牌 ,必然有一张最后取走。取走这

AC_coder的专栏 571
上一篇: PKU 1830 开关问题
下一篇: PKU 3185 The Water Bowls
Mei废话
博客等级 码龄14年 5粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值