6.18总结

省赛排位赛2:

省赛排名赛2 - Virtual Judge

思路:

设两个方程直接解出来就行

代码:

复制代码
#include<bits/stdc++.h>
using namespace std;
int n, m; 
int main()
{
    int n, m;
    int ans1, ans2;
    cin >> n >> m;
    ans1 = n - (-3 + sqrt(3 * 3 + 4 * 2 * (n + m))) / 2;
    ans2 = n - (-3 - sqrt(3 * 3 + 4 * 2 * (n + m))) / 2;
    if (ans1 <= n && ans2 >= 0) cout << ans1;
    else cout << ans2;
}

省赛排名赛2 - Virtual Judge

代码:

复制代码
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
ll n;
int main()
{
	int t;
	cin >> t;
	while (t--)
	{
		cin >> n;
		ll ans = 0;
		ll nn = n;
		ll i = 1;
		while (nn)
		{
			ans += n / i;
			i <<= 1ll;
			nn >>= 1ll;
		}
		cout << ans << endl;
	}
	return 0;
}

省赛排名赛2 - Virtual Judge

代码:

复制代码
#include<bits/stdc++.h>
using namespace std;
int a[10000005];
int main()
{
	int n, p;
	cin >> n >> p;
	for (int i = 1; i <= n; i++)
	{
		cin >> a[i];
		a[i] += a[i - 1];
	}
	int ans = 0;
	for (int i = 1; i < n; i++)
	{
		ans = max(ans, (a[i] % p + (a[n] - a[i]) % p));
	}
	cout << ans << endl;
	return 0;
}

省赛排名赛2 - Virtual Judge

思路:

需要得到每个(x,y)下的最大公约数,再找出一定的规律

代码:

复制代码
#include<bits/stdc++.h>
using namespace std;
long long t, a, b, c, n, ca, cb, cc;
int gcd(int x, int y)
{
	if (x < y)swap(x, y);
	if (x % y)return gcd(y, x % y);
	return y;
}
int main()
{
	cin >> t;
	while (t--)
	{
		cin >> n >> a >> b;
		c = a * b / gcd(a, b);
		ca = n / a, cb = n / b, cc = n / c;
		ca -= cc, cb -= cc;
		cout << (n + n - ca + 1) * ca / 2 - (1 + cb) * cb / 2 << endl;
	}
	return 0;
}

省赛排名赛2 - Virtual Judge

代码:

复制代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int a[1000010], n;
int main() {
	cin >> n;
	for (int i = 1; i <= n; i++)
		cin>>a[i], a[i] ^= a[i - 1];
	ll ans = 0;
	for (int i = 0, x = (1 << i); i < 32; i++, x <<= 1)
	{
		int cnt = 0;
		for (int j = 1; j <= n; j++)
			if ((a[j] >> i) & 1) cnt++;
		ans += 1LL * cnt * (n + 1 - cnt) * x;
	}
	cout << ans << endl;
	return 0;
}

省赛排名赛2 - Virtual Judge

思路:

给定一个能达到数据范围的斐波拉契数组,包含所有数据范围内的斐波拉契数,再进行几个特判

代码:

复制代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll f[100];
string check(ll n, ll x, ll y)
{
    if (x == 1 && y == 1)
    {
        return "YES";
    }
    if (y <= f[n] && y > f[n - 1])
    {
        return "NO";
    }
    if (y > f[n])
    {
        y = y - f[n];
    }
    return check(n - 1, y, x);
}
int main()
{
    ll t, n, x, y;
    f[0] = 1;
    f[1] = 1;
    for (int i = 2; i <= 45; i++)
        f[i] = f[i - 1] + f[i - 2];
    cin >> t;
    while (t--)
    {
        cin >> n >> x >> y;
        cout << check(n, x, y) << endl;;
    }
    return 0;
}

省赛排名赛2 - Virtual Judge

思路:

01背包问题,就题目改了一下,直接用模板就行

代码:

复制代码
#include<bits/stdc++.h>
using namespace std;
int h, t, n, a[401], z[401], l[501], dp[401][401];
int main() {
    cin >> h >> t >> n;
    for (int i = 1; i <= n; i++)
    {
        cin >> a[i] >> z[i] >> l[i];
    }
    for (int i = 1; i <= n; i++)
    {
        for (int j = h; j >= a[i]; j--)
        {
            for (int k = t; k >= z[i]; k--)
            {
                dp[j][k] = max(dp[j][k], dp[j - a[i]][k - z[i]] + l[i]);
            }
        }
    }
    cout << dp[h][t];
    return 0;
}
相关推荐
2401_868534783 小时前
RTOS之RT-Thread & Linux:线程/进程管理与调度核心差异分析
c++·python
wabs6664 小时前
关于图论【卡码网117.软件构建的思考】
数据结构·算法·软件构建·图论·卡码网
mifengxing4 小时前
LeetCode 41.缺失的第一个正数|Hard题O(n)+O(1)最优解法深度解析
java·算法·leetcode·排序算法
郝学胜-神的一滴5 小时前
Qt 高级编程 040:按钮悬浮弹出滑块弹窗的完整攻略
开发语言·c++·qt·软件工程·用户界面
Tongzhi20265 小时前
从部署到运维:通芝科技无感考勤一体机的全流程效率解析
运维·数据结构·科技·算法·贪心算法
Wang's Blog5 小时前
AI Agent白手起家30: 动态示例选择器之根据长度选择 Few Shot 示例
算法
oyguyteggytrrwwwrt7 小时前
自制交叉线路识别算法
算法
手写码匠7 小时前
华为云Flexus+DeepSeek征文|Dify 多智能体协同编排实战:R1 规划 + V3 执行,构建企业 Agent 团队
人工智能·深度学习·算法·aigc
晓天衡宇•评测社区8 小时前
FSR-Bench 前沿科学推理榜单发布:GPT-5.5 居首,“会推理”未必“能答对”
算法
程序喵大人9 小时前
【C++进阶】STL算法与函数对象 - 02 sort为什么需要随机访问迭代器
开发语言·c++·算法