srm 538

http://mlz000.github.io/2015/07/14/srm-538/

题外话

之前准备期末预习加上刚放假浪了一会= =没有补题,今天开始恢复补题。。

250


Description:

平面上给出 N 个点,整数坐标。从(0,0)出发,每次往上下左右四个垂直方向走,要求遍历所有点至少一次,最后回到给出的N个点中的某个点(不包括原点)。然后走过的距离是曼哈顿距离。给出一个数字代表要求走过的距离为奇还是为偶。问能否满足要求。

Solution

显然如果要求是偶的话只有全奇时无解,若有一个偶数,则可通过往返的方式访问其他点最后停留在偶数点,要求为奇数时同理

Code

#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define mp make_pair
#define F first
#define S second
typedef long long LL;
typedef pair<int, int> pii;
class EvenRoute {
        public:
        string isItPossible(vector <int> x, vector <int> y, int wantedParity) {
            int n = x.size();
            bool even = 0, odd = 0;
            for (int i = 0; i < n; ++i) {
                if ((abs(x[i]) + abs(y[i])) & 1)    odd = 1;
                else even = 1;
            }
            return (odd && even) || (even && !wantedParity) || (odd && wantedParity) ? "CAN" : "CANNOT";
        }
};

450


Description

给出四种命令。左转多少度,右转多少度,前进多远,后退多远。先在顺序是打乱的。要求给出一种排列使得最终总的位移和最远。输出最远距离即可。

Solution

一个很明显的直观感受是尽量走直线会使得答案更大一些。这样就很简单了,不妨全向前,然后把调整角度放到后面,最后全向后即可。调整的角度背包求即可

Code

#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define mp make_pair
#define F first
#define S second
typedef long long LL;
typedef pair<int, int> pii;
vector<int> a, b;//ang back
int dp[60][360];
const double Pi = acos(-1.0);
class TurtleSpy {
    public:
        double maxDistance(vector <string> commands) {
            int n = commands.size();
            double X = 0.0, Y = 0.0;
            for (int i = 0; i < n; ++i) {
                char s[10];
                int x;
                sscanf(commands[i].c_str(), "%s%d", s, &x);
                if (s[0] == 'f')    X += x;
                else if (s[0] == 'b')   Y += x;
                else if (s[0] == 'l')   a.pb(x);
                else    a.pb(360 - x);
            }
            dp[0][0] = 1;
            for (int i = 0; i < a.size(); ++i) {
                for (int j = 0; j < 360; ++j)
                    if (dp[i][j])   dp[i + 1][(j + a[i]) % 360] = dp[i + 1][j] = 1;
            }
            double t = 0.0;
            for (int i = 0; i < 360; ++i) {
                if (dp[a.size()][i])    t = max(t, X * X + Y * Y - 2.0 * X * Y * cos(Pi * i / 180.0));
            }
            return sqrt(t);
        }
};
### 什么是供应商关系管理系统(SRM) 供应商关系管理系统(Supplier Relationship Management, SRM)是一种旨在帮助企业优化其与供应商之间合作关系的信息技术工具。它通过集成化的流程管理和数据分析能力,提升企业在采购、供应链协作以及资源分配方面的效率和透明度[^1]。 #### SRM 的产生背景 随着全球化进程加快,企业面临的市场竞争日益激烈,传统的采购管理模式已无法满足现代商业环境的需求。为了降低采购成本并提高供应链灵活性,SRM 应运而生。该系统的引入不仅能够改善企业内部运作机制,还促进了外部合作伙伴之间的高效沟通与合作。 #### SRM 的核心功能 SRM 系统通常具备以下几类主要功能: - **供应商全生命周期管理**:覆盖从潜在供应商评估到正式签约再到绩效考核的全过程。 - **采购流程自动化**:支持在线询价、报价处理、合同签订等功能,减少人工干预带来的错误风险。 - **数据共享与协同工作**:与其他业务系统(如ERP、WMS等)无缝对接,实现跨部门甚至跨国界的数据交换和服务调用[^2]。 - **分析决策支持**:利用大数据技术和人工智能算法挖掘隐藏价值,辅助管理层制定科学合理的策略方向[^3]。 #### SRM 对企业的战略意义 实施有效的SRM方案可以帮助公司获得多方面收益,包括但不限于削减开支、缩短交货周期、改进产品质量等方面的表现;同时也有助于构建长期稳定可信赖的合作网络,在不确定因素增多的情况下保持竞争优势地位[^4]。 ```python class SupplierRelationshipManagementSystem: def __init__(self): self.modules = ["Supplier Lifecycle", "Procurement Automation", "Data Collaboration"] def manage_suppliers(self): print("Managing suppliers through lifecycle stages.") def automate_procurements(self): print("Automating procurement processes with digital tools.") def collaborate_data(self): print("Facilitating data collaboration across systems.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值