SRM540

250
ImportantSequence
题意:告诉你相邻两数的操作符和运算结果,求有多少满足要求的正整数序列

分析:固定了第一个数,答案就固定,由于有每个数都是正整数的限制,因此可以把限制都转移到第一个数上,把每个数用第一个数表示,就可以得到一系列不等式,解一下即可

550
RandomColoring
题意:定义颜色为(R,G,B)的三元祖,给定一个初始颜色,按照某种规则生成等概率生成下一种颜色,问最后一种颜色和第一种颜色仍然满足这种规则的概率

分析:由于数据范围都只有50,可以考虑暴力dp,复杂度显然事 O(n7) 无法满足,但计算dp[i][j][k]就相当于求三维空间中一个长方体中的所有数的和,于是可以可以求一个三位前缀和来搞;
注意求这个前缀和需要for三次(最后一维不同即可),而求区间和需要一个容斥,具体来说就是sum((xl,xr],(yl,yr],(zl,zr])是二维形式的推广

950
ProductQuery
题意:给出若干个区间乘积mod10的结果,求有多少个元素<10的非负整数数列

假如把10改成任意一个质数,那么就可以求逆元,意味着算pro[l,r]==x方案可以让[l,r-1]的数任选,前面一个数确定了最后一个数就确定了
本题稍微复杂一些,有多个区间,不过我们只关心右端点重合的那些区间,只需要把这些区间按照左端点从小到大排序,然后把大区间拆掉即可

#include <cstdio>
#include <cmath>
#include <cstring>
#include <ctime>
#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
#include <sstream>
#include <typeinfo>
#include <fstream>

using namespace std;
typedef long long LL;
typedef pair<int,int>pi;
const int M=1e9+7;
inline void up(int &x,int y){
    x+=y;if(x>=M)x-=M;
}
class ProductQuery {
    public:
    int notzero[222];
    vector<pi>V[222];
    int pw[222];
    int dp[222];
    int cal(int a,int b,int p){//ret*a%p==b
        for(int i=1;i<p;i++)if(i*a%p==b)return i;
    return -1;
    }
    int solve(int N,vector<int>ql,vector<int>qr,vector<int>res,int p){
    int q=res.size();
    pw[0]=1;
    for(int i=1;i<=N+2;i++)pw[i]=1LL*pw[i-1]*(p-1)%M;
        for(int i=0;i<q;i++){
        res[i]=res[i]%p;
    }
    memset(notzero,0,sizeof(notzero));
    for(int i=0;i<q;i++){
        if(res[i]){
            for(int j=ql[i];j<=qr[i];j++)notzero[j]=1;
        }
    }
    //
    dp[0]=1;
    for(int i=1;i<=N+1;i++){
        dp[i]=0;
        if(notzero[i])continue;
        for(int j=0;j<i;j++){
            if(dp[j]){
                bool flag=1;
                for(int k=0;k<q;k++){
                    if(!res[k]&&ql[k]>j&&qr[k]<i){
                        flag=0;
                        break;
                    }
                }
                if(flag){
                    int cnt=0;
                    for(int tmp=j+1;tmp<i;tmp++)if(!notzero[tmp])cnt++;
                    up(dp[i],1LL*pw[cnt]*dp[j]%M);
                }
            }
        }
    }
    if(!dp[N+1])return 0;
    for(int i=1;i<=N;i++)V[i].clear();
    for(int i=0;i<q;i++)if(res[i])V[qr[i]].push_back(pi(ql[i],res[i]));
    int det=0;
    for(int i=N;i>=1;i--){
        if(!notzero[i]||!V[i].size())continue;
        sort(V[i].begin(),V[i].end());
        for(int j=V[i].size()-2;j>=0;j--){
            if(V[i][j].first==V[i][j+1].first){
                if(V[i][j].second!=V[i][j+1].second)return 0;
            }
            else{
                int t=cal(V[i][j+1].second,V[i][j].second,p);//cal(a,b,p)*a==b%p
                V[V[i][j+1].first-1].push_back(pi(V[i][j].first,t));
            }
        }
        det++;
    }
    int tot=0;
    for(int i=1;i<=N;i++)if(notzero[i])tot++;
    //if(p==5)printf("tot=%d det=%d\n",tot,det);
    int ans=1LL*pw[tot-det]*dp[N+1]%M;
    return ans;
    }    
    int theInput(int N, vector<int> Qfrom, vector<int> Qto, vector<int> output) {
    for(int i=0;i<Qfrom.size();i++){
        Qfrom[i]++,Qto[i]++;
    }
    return 1LL*solve(N,Qfrom,Qto,output,2)*solve(N,Qfrom,Qto,output,5)%M;   
        return 0;
    }
};

资源下载链接为: https://pan.quark.cn/s/6b3e936ec683 在英语学习过程中,一款优秀的词典工具至关重要。Vocabulary.com Dictionary 和欧陆词典(EuroDict)作为两款备受推崇的在线词汇资源,各具特色且能够相互补充,为用户打造全面的词汇学习体验。 Vocabulary.com Dictionary 不仅提供单词的标准释义,还特别注重词汇的实际运用。它涵盖了丰富的例句、短语和习语,帮助用户掌握词汇在不同语境中的使用方式。此外,Vocabulary.com 设有互动学习功能,通过游戏和挑战的形式,让学习者在趣味中巩固新词汇。其“智能学习计划”能够根据用户的学习进度和能力定制个性化学习路径,是提升词汇量的有效工具。 与之配合的欧陆词典则以多语言支持和深度词汇解析闻名。它不仅提供英文词汇的解释,还涵盖多种语言对照,非常适合多语种学习者。欧陆词典还提供同义词、反义词、派生词等扩展信息,以及丰富的短语和习语,帮助用户全面理解词汇的多维度含义。 在实际使用时,学习者可以先通过 Vocabulary.com Dictionary 查找单词的基本信息和应用场景,再借助欧陆词典拓展对词汇的多语言理解,尤其是对比不同语言中词汇的对应关系。Vocabulary.com 的互动学习模式适合日常学习,而欧陆词典则更适合深度研究和词汇拓展。 压缩包中的文件可能包括“Vocabulary.com Dictionary.jpg”,这可能是词典的截图或封面,用于视觉介绍;“Vocabulary.com Dictionary.mdd”和“.mdx”文件则是欧陆词典的数据文件,用于存储索引和数据,方便离线查询。将这些文件下载到本地,即使在无网络的情况下,也能使用部分功能。 Vocabulary.com Dictionary 和欧陆词典的结合使用,能为学习者
03-16
### 什么是供应商关系管理系统(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、付费专栏及课程。

余额充值