题目: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; }
相关推荐
虎符+红明谷+ctfshow渔人杯赛后复现
目录标题虎符CTFWeb-签到MISC-你会日志分析吗红明谷CTFWeb-write_shellMISC-我的心是冰冰的ctfshow渔人杯签到抽奖感受下气氛神仙姐姐阿拉丁迷飘啊飘简单二维码我跟你拼了 虎符CTF Web-签到 参考详细分析PHP源代码后门事件及其供应链安全启示 根据文章提示,添加恶意请求头 User-Agentt: zerodiumphpinfo(); 可以看到phpinfo内容 继续构造,查看根目录下的文件 User-Agentt: zerodiumsystem('ls /');
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取模,因为这不会影响结果,这个可以理解一下。代码:
Netty UDP
UDP是一种无连接的协议,它并不在通信双方之间建立连接,而是直接将数据包从发送端发送到接收端。UDP不保证数据包的可靠传输,也不保证数据包的顺序,因此其传输速度通常比TCP快,且系统开销较小。然而,这也意味着UDP在某些情况下可能会丢失数据包或数据包到达的顺序错乱。
pku 2947 Widget Factory 高斯消元
http://poj.org/problem?id=2947 题意: 工人生产不同的部件需要不同的时间,最少需要3天最多需要9天。 给出n种部件和m条记录,每条记录包括该工人生产部件的总数k和他开始生产时间和结束时间(只给出是周几,不给出具体时间),之后给出这K个部件跟的所属的种类。最后求出生产这n种部件分别所需要的时间。 思路: 高斯消元: 例子来讲 首先我们能够列出方程 (x ...
H.264 Profile与Level详解:如何为不同应用场景选择合适的编码配置
本文深入解析了H.264编码标准中的Profile与Level概念,指导开发者如何为不同应用场景选择合适的配置。文章对比了Baseline、Main和High三大Profile的特性与适用场景,并解释了Level如何限定视频的分辨率、帧率与码率上限。通过实战指南,帮助读者在视频通话、在线点播和专业制作等场景中,平衡画质、兼容性与性能,实现高效编码。
【Cadence软件技巧集萃】从Capture到Allergo——分布演示从原理符号导出到网络表
Cadence软件功能多样、性能强大,但是使用起来颇费步骤,尤其是从原理图到网络表的导入步骤,没有经过上手实践还真不一定一次就能搞定哩。本文笔者用将分步演示:1、在Capture软件上绘制原理图;2、将原理图导出网络表;3、在Allergo软件上更新网络表;希望给予使用Cadence的读者有效的帮助1、本文简述了建立Capture项目的步骤,演示了调用元件符号库的方法,并绘制了电气原理图;2、针对加载元件封装库可能遇到的问题,做了排查步骤建议;
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
静态时序分析(Static Timing Analysis, STA):简介及内容导航
静态时序分析(简称STA)是用来验证数字设计时序的技术之一,另外一种验证时序的方法是时序仿真,时序仿真可以同时验证功能和时序。“时序分析”这个术语就是用来指代“静态时序分析“或”时序仿真“这两种方法之一,简单来说,时序分析的目的就是为了解决设计中的各种时序问题。STA被称为静态的原因是其对于设计的分析是静态地执行的,并不依赖于施加在输入端口上的激励。相比之下,时序仿真则可以被视作动态地执行对设计的分析,具体过程描述如下:施加一组激励,观察在这组激励下电路行为是否符合要求,然后换一组激。
PKU 2104 K-th Number
题目:http://poj.org/problem?id=2104 借此题学习了一下划分树 划分树定义: 他的每个节点保存【l, r】区间的所有元素,元素的排列顺序与输入的顺序相同,但是其两个子树的元素是所有元素排序后, 有(l+r)/2个元素进入左子树,其余的进入右子树,同时 维护一个num[]变量, num[i]表示l->i中, 有多少个元素进入了左子树。 红色代表进入左子树的元素
【k8s实战】 在离线项目混部 通过kubeflow(tf-operator)部署TensorFlow机器学习任务+prometheus/grafana监控资源使用全过程(最新 图文)
目录在离线混合部署概念最新版kubeflow部署TensorFlow部署二级目录三级目录 在离线混合部署概念 先举一个例子,众所周知的天猫双十一当天的流量非常之大,那么就需要成百上千台服务器构成一个超大集群来提供计算能力,但是双十一过去之后,集群资源就面临着浪费的局面。假设业务分为在线和离线两种模式:在线任务需要资源相对较少,但要求响应时间短;离线任务则不需要对任务进行迅速响应,但是计算量相对较大、占用资源多。那么我们应该怎么在K8S集群上完成这两种业务的部署、并且使得CPU利用率始终维持在一个比较高的水平
亚马逊跨境电商选品数据分析:Python爬虫实战指南
本文将带领大家构建一套完整的亚马逊选品数据采集与分析系统,使用最新的Python技术栈,从零开始爬取亚马逊商品数据,并进行深度分析。
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的倍数,这样就可以降低 时间复杂度了。。。。
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下来代码
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
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
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],
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
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;
PKU 1177 Picture
题目:http://poj.org/problem?id=1177 题意:墙上贴着一些海报、照片等矩形,所有的边都为垂直或水平。每个矩形可以被其它矩形部分或完全遮盖,所有矩形合并成区域的边界周长称为轮廓周长。 思路:见陈宏论文//一维数组 #include #include #include #include using namespace std; const int max
PKU 3185 The Water Bowls
题目:http://poj.org/problem?id=3185 题意:有20只碗排成一排, 奶牛翻转其中的一只碗, 其左右的碗都会跟着翻转,现在给出20只晚的初始状态,问需要至少多少次的翻转才能使所有碗都朝上。 思路:高斯消元+枚举自由变元。很容易想到如何建立方程组,一共有20个变元和20个方程组,如果有多个自由变元,需要枚举自由变元算出翻转次数,然后取最小值~~~ #include
PKU 1083 Moving Tables
题目:http://poj.org/problem?id=1083 题意:有两排房间,每排200个房间,现在要搬桌子,每搬一次花费10分钟,同一段走廊不能同时使用,求至少花费多长时间。 思路:因为每搬一次桌子就要使用一次s到j的走廊,因此,每次s到j的区间加1,最后求出使用次数最多的*10,即为答案。 需要注意的是,当s为偶数的时候,s--,当t为奇数的时候, t++; #incl
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
PKU 1830 开关问题
题目:http://poj.org/problem?id=1830 学完高斯消元做的第一题, 高斯消元的难点在于怎样建立方程组,来建立系数矩阵。如何建方程组:http://blog.youkuaiyun.com/shiren_Bod/article/details/5766907,写的很好, 学习了~~。 此题需要注意的是,初始化矩阵时,开关I和J不要弄反了~~~ 如果有自由变元,返回1
PKU 1651 Multiplication Puzzle
题目:http://poj.org/problem?id=1651 题意:有n个数,取走一个数,计算这个数和他左右两边数的乘积,不允许取最左边和最右边的数,求每次所得的数和的最小值。 思路:不知道怎么DP, 看了discuss, 原来跟矩阵链乘一样,里边分析的很明白了 贴出来~~~, 学习 对于整个牌的序列,最左端和最右端的牌是不能被取走的,除这两张以外的所有牌 ,必然有一张最后取走。取走这
1981



被折叠的 条评论
为什么被折叠?



