首页 > 其他分享 >2023百度之星摘记

2023百度之星摘记

时间:2023-08-12 15:25:59浏览次数:44  
标签:typedef cur int ll long 2023 摘记 之星 define

目录

百度之星合集链接

初赛一

1 公园

三遍 dij 求最短

//>>>Qiansui
#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define mem(x,y) memset(x, y, sizeof(x))
#define debug(x) cout << #x << " = " << x << '\n'
#define debug2(x,y) cout << #x << " = " << x << " " << #y << " = "<< y << '\n'
#define int long long

using namespace std;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef pair<ull, ull> pull;
typedef pair<double, double> pdd;
/*

*/
const int maxm = 4e4 + 5, mod = 998244353;
const ll inf = 1e10;
vector<int> e[maxm];
int te, fe, s, t, f, n, m;
vector<vector<ll>> dis;

void dij(int u, int c){
	dis[c][u] = 0;
	vector<bool> vis(n + 1, false);
	priority_queue<pii, vector<pii>, greater<pii>> q;
	for(auto v : e[u]){
		q.push({1, v});
	}
	while(!q.empty()){
		pii t = q.top(); q.pop();
		// debug2(t.first, t.second);
		if(vis[t.second]) continue;
		vis[t.second] = true;
		dis[c][t.second] = t.first;
		for(auto v : e[t.second]){
			if(!vis[v] && dis[c][v] > dis[c][t.second] + 1){
				q.push({dis[c][t.second] + 1, v});
			}
		}
	}
	return ;
}

void solve(){
	cin >> te >> fe >> s;
	cin >> t >> f >> n >> m;
	dis = vector<vector<ll>> (3, vector<ll> (n + 1, inf));
	for(int i = 0; i < m; ++ i){
		int x, y;
		cin >> x >> y;
		e[x].push_back(y);
		e[y].push_back(x);
	}
	dij(t, 0);
	dij(f, 1);
	dij(n, 2);
	ll ans = inf;
	for(int i = 1; i <= n; ++ i){
		ans = min(ans, dis[0][i] * te + dis[1][i] * fe + dis[2][i] * (te + fe - s));
	}
	if(ans == inf) cout << "-1\n";
	else cout << ans << '\n';
	return ;
}

signed main(){
	ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
	int _ = 1;
	// cin >> _;
	while(_ --){
		solve();
	}
	return 0;
}

5 糖果促销

先买 1 糖果,接下来每次买 p - 1 个糖果即可再换出一个糖果,如此循环,不足 p - 1 个时单买

//>>>Qiansui
#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define mem(x,y) memset(x, y, sizeof(x))
#define debug(x) cout << #x << " = " << x << '\n'
#define debug2(x,y) cout << #x << " = " << x << " " << #y << " = "<< y << '\n'
#define int long long

using namespace std;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef pair<ull, ull> pull;
typedef pair<double, double> pdd;
/*

*/
const int maxm = 2e5 + 5, inf = 0x3f3f3f3f, mod = 998244353;

void solve(){
	ll p, k;
	cin >> p >> k;
	if(k == 0){
		cout << "0\n";
		return ;
	}
	ll n = k / p, ans = 1;
	ll yu = k - n * p;
	if(yu) -- yu;
	ans = n * (p - 1) + yu + 1;
	cout << ans << '\n';
	return ;
}

signed main(){
	ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
	int _ = 1;
	cin >> _;
	while(_ --){
		solve();
	}
	return 0;
}

8 除法游戏

nim 游戏改版,本题的关键在于怎么快速求出每堆石子的 sg 值

下为代码

//>>>Qiansui
#include<bits/stdc++.h>
#define ll long long
#define lll __int128
#define ull unsigned long long
#define mem(x,y) memset(x, y, sizeof(x))
#define debug(x) cout << #x << " = " << x << '\n'
#define debug2(x,y) cout << #x << " = " << x << " " << #y << " = "<< y << '\n'
//#define int long long

using namespace std;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef pair<ull, ull> pull;
typedef pair<double, double> pdd;
/*

*/
const int maxn = 2e5 + 5, inf = 0x3f3f3f3f, mod = 998244353;

lll qmksm(ll a,ll b,ll m){
	lll s=1,z=a%m;
	while(b>0){
		if(b&1==1){
			s*=z;
			s%=m;
		}
		z*=z;
		z%=m;
		b>>=1;
	}
	return s;
}

bool millerrabin(ll n){
	if(n<3) return n==2;
	if(n%2==0) return 0;
	ll i,j,d=n-1,r=0,tss[8]={-1,2,325,9375,28178,450775,9780504,1795265022};
	while(d%2==0) d/=2,r++;
	for(i=1;i<=7;i++){
		lll zc=qmksm(tss[i],d,n);
		if(zc<=1 or zc==n-1) continue;
		for(j=0;j<=r-1;j++){
			zc=(zc%n*zc%n)%n;
			if(zc==n-1 and j!=r-1){
				zc=1;
				break;
			}
			if(zc==1) return 0;
		}
		if(zc!=1) return 0;
	}
	return 1;
}

int N = 1e4 + 5, cnt = 0;
vector<bool> isprime(N, true);//判断素数
vector<long long> prime;//存储素数
void pre(){
	long long t;
	isprime[1] = false;
	for(long long i = 2; i < N; ++ i){
		if(isprime[i]){
			prime.push_back(i);
			++ cnt;
		}
		for(int j = 0; j < cnt; ++ j){
			t = i * prime[j];
			if(t > N) break;
			isprime[t] = false;
			if(i % prime[j] == 0) break;
		}
	}
	return ;
}

void solve(){
	pre();
	int n;
	cin >> n;
	int sum = 0;
	for(int i = 0; i < n; ++ i){
		ll cur, c = 0;
		cin >> cur;
		if(cur % 2 == 0) c = 1;
		while(cur % 2 == 0) cur /= 2;
		for(int j = 0; j < cnt; ++ j){
			while(cur % prime[j] == 0){
				++ c;
				cur /= prime[j];
			}
		}
		if(cur != 1){
			++ c;
			if(!millerrabin(cur)) ++ c;
		}
		sum ^= c;
	}
	puts(sum ? "Xiaodu" : "Duduxiong");
	return ;
}

signed main(){
	ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
	int _ = 1;
	// cin >> _;
	while(_ --){
		solve();
	}
	return 0;
}

标签:typedef,cur,int,ll,long,2023,摘记,之星,define
From: https://www.cnblogs.com/Qiansui/p/17624782.html

相关文章

  • 2023-08-12 记录一则随机密码生成脚本
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=......
  • 寻找适合你的在线客服系统?这里有8款推荐(2023年8月更新)
    近年来,随着网站交互性的提升,越来越多的企业开始关注并采用在线客服系统,以便更好地与访客互动和沟通。尤其对于外贸网站等需要频繁沟通的行业来说,选择一个合适的在线客服系统显得尤为重要。在这篇文章中,我们将为您介绍2022年8月更新的8款优秀在线客服系统,帮助您更好地选择适合自己......
  • 联合省选 2023 填数游戏
    这是22年的我:https://www.luogu.com.cn/record/81067862这是23年的我:看我一个流过冲过A性质首先考虑判定。一个经典模型是:如果在\(T_{i,0}\)与\(T_{i,1}\)之间连一条无向边(若\(|T_i|=1\)则认为\(T_{i,1}=T_{i,0}\)),那么题目转化为给每条边定向,使得每个点的入度不超......
  • 学习平板如何访问外网(2023.8.12)
    嗨!今天我教大家学习平板如何访问外网(这篇文章就是我用学习平板访问外网写的)首先,你要确保你的平板里安装了快对(原快对作业),然后打开它。在“我的”页面中往下滑找到设置,在设置往下滑中找到“第三方信息共享清单”,点进去,点击第一个腾讯的SDK下面的网站,再点击进去,点击右上角的腾讯云......
  • Typora 激活教程(2023最新图文教程,测试有效)
    下载Typora激活补丁下载地址 https://kdocs.cn/l/chV3CWzeXgdE下载成功后解压,目录如下:typora激活补丁目录,选择第二种方式Typora激活补丁包解压目录安装Typora作者在写这篇教程的时候,Typora最新版本号为1.3.8,通过如下链接下载Typora,下载成功后,直接双击安装即可:......
  • 2023.8.7-2023.8.14暑假第五周博客
    2023.8.7今天人在外,因此博客休息一天图片如下 2023.8.8今天对hive有了进一步的了解首先要明确一个流程当我打开三台虚拟机,用finalshell连接上后首先要使用如下命令1.su-hadoop切换到hadoop用户,大部分操作都必须在hadoop用户中完成,而千万不要再root中,因为root用户一......
  • 【专题】2023消费电子行业数字化转型白皮书报告PDF合集分享(附原数据表)
    在后疫情时代,全球经济和消费力的增长面临巨大考验。2022年,电脑、手机等产品的市场规模出现了小幅收缩调整。然而,在这样的环境下,各种消费电子的细分领域却展现出了强大的韧性。阅读原文,获取专题报告合集全文,解锁文末29份消费电子行业相关报告。智能手表、真无线耳机、AR/VR眼镜、户......
  • 2023.8.11
    今天早上起来,还是和往常一样打球,还有几天就离开了,只能假期回来再和兄弟们一起玩了,下午回家有些无聊了,问兄弟们还来不来,他们答应我出来打几个小时,太好了,终于不用在家里待着了,下午打到56点钟就回家了,爸妈还没回来,赶紧把饭蒸好,舒服了,晚上有些累了,躺着突然就睡着了,半夜起来写下这些,明......
  • Pycharm2023.2远程连接Linux服务器
    1.点击右下角(图中RemotePython处)2.输入服务器地址和用户3.输入密码4.只需在Location选择自己Linux中的虚拟环境Baseinterpreter不需要更改,点击create即可......
  • 2023.8.11 模拟赛
    A询问\(L\lei,j\leR\),其中\(\gcd(i,j)\not=1,i,j\)的对数。莫反先求出\(gcd(i,j)\not=1\)的对数,然后再直接调和级数暴力删去\(i,j\)是倍数的对数即可。BP4334[COI2007]Policija考虑建立圆方树。圆方树是怎么样的呢?圆方树是对于每个点双,都建立一个方点,然后......