2019UMS培训day6解题报告

T1:

链接:https://www.luogu.org/problem/P2520

$sol:$数学推导(咕

代码:

#include <bits/stdc++.h>
typedef int intt;
#define int long long
using namespace std;
int a, b, x, y, t, d;
int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); }
bool check(int x, int y) { return (x % d == 0 && y % d == 0) || ((x + a) % d == 0 && (y + b) % d == 0) || ((x + b) % d == 0 && (y + a) % d == 0) || ((x + a + b) % d == 0 && (y + a + b) % d == 0); }
intt main() {
    cin >> t;
    while(t--) {
        cin >> a >> b >> x >> y;
        d = gcd(a, b) << 1;
        check(x, y) ? (cout << "Y" << endl) : (cout << "N" << endl);
    }
    return 0;
}

T2:

链接:https://www.luogu.org/problem/P4626

$sol$:欧拉筛处理出范围内的素数,用素数的最高次幂来表示即可达到最终结果。此题卡空间卡常,需要使用$bitset$等技巧优化。

代码:

// luogu-judger-enable-o2
#include <cstdio>
#include <bitset>
#include <iostream>
const int MAXN = 100000005;
const int mod = 100000007;
typedef long long ll;
using namespace std;
bitset<MAXN> vis;
int n, cnt, prime[10000005];
ll ans = 1;
void get_prime() {
    for(register int i = 2; i <= n; i++) {
        if(!vis[i])
            prime[++cnt] = i;
        for(register int j = 1; i * prime[j] <= n && j <= cnt; j++) {
            vis[i * prime[j]] = 1;
            if(i % prime[j] == 0)
                break;
        }
    }
}
ll calc(int x) {
    ll ans = x;
    while(ans <= n)
        ans = ans * x;
    return ans / x % mod;
}
int main() {
    ios::sync_with_stdio(false);
    cin >> n;
    get_prime();
    for(int i = 1; i <= cnt; i++)
        ans = (ans * calc(prime[i]) % mod) % mod;
    cout << ans % mod << endl;
    return 0;
}

T3:

链接:https://www.luogu.org/problem/P1516

$sol$:解不定方程,最后要注意解的范围。

代码:

#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
ll x, y, m, n, l;
ll exgcd(ll a, ll b, ll &x, ll &y) {
    if(b == 0) {
        x = 1;
        y = 0;
        return a;
    }
    ll gcd = exgcd(b, a % b, x, y);
    ll t = x;
    x = y;
    y = t - a / b * y;
    return gcd;
}
int main() {
    cin >> x >> y >> m >> n >> l;
    ll a = n - m, c = x - y;
    if(a < 0) {
        a *= -1;
        c *= -1;
    }
    ll gcd = exgcd(a, l, x, y);
    if(c % gcd != 0) {
        cout << "Impossible" << endl;
        return 0;
    }
    l /= gcd;
    cout << (x * (c / gcd) % l + l) % l << endl;
    return 0;
}

 

转载于:https://www.cnblogs.com/BeyondLimits/p/11325083.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UMS是"User Management System"的缩写,即用户管理系统。它是一种用于管理和维护用户信息和权限的软件接口。UMS接口是用于连接UMS系统和其他应用程序或系统的通信接口。 UMS接口的作用是实现用户信息的同步和共享。通过UMS接口,不同的应用程序或系统可以向UMS系统传递用户信息,包括用户的基本信息、权限信息、角色信息等。UMS系统可以根据接收到的信息,对用户进行统一管理和授权。这种统一的用户管理可以简化系统的开发和维护工作,提高系统的安全性和可扩展性。 UMS接口的实现需要遵循一定的标准和协议。常见的UMS接口标准包括LDAP(轻量级目录访问协议)、SAML(安全断言标记语言)等。通过遵循这些标准和协议,不同的应用程序和系统可以根据自身的需求和特点,选择合适的UMS接口进行集成。 UMS接口的集成可以带来多种好处。首先,它可以实现用户信息的集中管理,避免了不同系统之间用户信息的冗余和不一致。其次,UMS接口可以提供统一的认证和授权机制,确保只有经过认证的用户能够访问相应的系统和资源。此外,UMS接口还可以提供用户行为的监控和审计功能,帮助企业对用户的操作进行有效的管理和追踪。 综上所述,UMS接口是连接UMS系统和其他应用程序或系统的通信接口,它可以实现用户信息的同步和共享,提供统一的用户管理和授权机制,帮助企业简化开发和维护工作,提高系统的安全性和可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值