首页 > 其他分享 >2024 暑假友谊赛-热身2 (7.12)zhaosang

2024 暑假友谊赛-热身2 (7.12)zhaosang

时间:2024-07-14 19:57:19浏览次数:9  
标签:std 7.12 zhaosang int ll cin long using 友谊赛

E-E

https://vjudge.net/problem/AtCoder-diverta2019_b
给你 a, b, c ,n就是问你有多少(ia+jb+k*c)等于n的答案i,j,k任意几个都可以为零
两种思想,数据量比较小,那么可以三重循环+减枝,或者枚举两个变量算出第三个
代码如下:
第一种三重循环

#include <bits/stdc++.h>

using namespace std;
using ll =long long;
ll v[10000010];
ll A,B,C,n;
ll ans;
int main(){
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin>>A>>B>>C>>n;
	for(int i=0;i<=n;i++){
		for(int j=0;j<=n/B;j++){
			for(int k=0;k<=n/C;k++){
				if(A*i+B*j+C*k==n){
					ans++;
				}else if(A*i+B*j+C*k>=n){
					break;
				}
			}
		}
	}
	cout<<ans;
}
第二种 两重循环算第三个
#include <bits/stdc++.h>

using namespace std;
using ll =long long;
ll v[10000010];
ll A,B,C,n;
ll ans;
int main(){
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin>>A>>B>>C>>n;
	for(int i=0;i*A<=n;i++){
		for(int j=0;j*B+A*i<=n;j++){
			int p=n-i*A-j*B;
			if(p%C==0)ans++;
			}
		}
	cout<<ans;
}
D-D

https://vjudge.net/contest/640017#problem/D
D和E差不多,这个是输出一个满足条件的就可以
我们遍历两重循环,算出满足条件的第三个值就行
代码如下:

#include <bits/stdc++.h>

using namespace std;
using ll =long long;
ll v[10000010];
ll l,n,m;

int main() {
	ll N;
	cin >> N;
	
	for (ll h = 1; h <= 3500; ++h) {
		for (ll n = 1; n <= 3500; ++n) {
			long long numerator = 4LL * h * n - N * (h + n);
			long long denominator = N * h * n;
			if (numerator > 0 && denominator % numerator == 0) {
				ll w = static_cast<ll>(denominator / numerator);
				if (w > 0) {
					cout << h << " " << n << " " << w << std::endl;
					return 0;
				}
			}
		}
	}
	
	return 0;
}


F-F

https://vjudge.net/contest/640017#problem/F

给你一定数量的子串,问你能构成的有AB的子串的最多数量
模拟题,找到A为末尾为a,B为开头的数量为b,还需要判断既有上面两种都有的情况,
然后计算出最多数量为a,bl里面小那个,还需要特判一下a等于b等于c情况

代码如下

#include <bits/stdc++.h>

using namespace std;
using ll =long long;
ll l,n,m;
vector<string>v(100000);
vector<ll>vt(1000000);
string s3;
ll a=0,b=0,c=0;
int fun2(const std::string& str, const std::string& sub){
	int num = 0;
	ll len = sub.length();
	if (len == 0)len=1;//应付空子串调用
	for (ll i=0; (i=str.find(sub,i)) != std::string::npos; num++, i+=len);
	return num;
}

int main(){
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>v[i];
		if(v[i][0]=='B'){
			b++;
		}
		if(v[i][v[i].length()-1]=='A'){
			a++;
		}
		if(v[i][v[i].length()-1]=='A'&&v[i][0]=='B'){
			c++;
		}
	}
	if(a==b&&b==c){
		if(c!=0){
			a=c-1;
			b=c-1;
		}
	
	}
	
	ll ans=0;
	for(int i=1;i<=n;i++){
		ans+= fun2(v[i],"AB");
	}
	cout<<ans+min(a,b);
	
	
}

标签:std,7.12,zhaosang,int,ll,cin,long,using,友谊赛
From: https://www.cnblogs.com/dontian/p/18301925

相关文章

  • SMU Summer 2024 Contest Round 2 (7.9)zhaosang
    A-Ahttp://162.14.124.219/contest/1006/problem/A考查用vector画图我枚举到n==5才开始用,浪费40分钟,还是找规律太慢,得多学做题代码如下:一坨#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;constllN=1e6+8;charv[1000001];intw[10000001];ll......
  • SMU Summer 2024 Contest Round 3(7.10)zhaosang
    打的最菜一次,最惨一次,题读假了A-Ahttp://162.14.124.219/contest/1007/problem/A签到题要解决这道题,素数对,数据量不是很大,所以我们可以先预处理素数,这个偶数肯定是等于小于它的两个素数,所以只需要遍历到小于它即可,把素数存起来,然后这两个素数的和等于这个偶数,并且要求相差最小......
  • 2024 暑假友谊赛-热身2
    CodeForces1265E思路:期望dp,f[i]表示走到i的期望天数,有f[i]=p[i]/100*(f[i-1]+1)+(100-p[i])/100*(f[i-1]+1+f[i]),得到f[i]=100/p[i]*(f[i-1]+1)#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#definePIIpair<int,......
  • 2024 暑假友谊赛 1
    AtCoderabc204_d一开始想着贪心,试了下wa掉了,然后看着过的人挺多的还是觉得是贪心......
  • 2024.7.12 模拟赛
    模拟赛T1挂\(70pts\),T2\(\mathbb{AC}\)力挽狂澜,T3暴力爆零,T4\(5min=30pts\)。T1CowTollPathsG弗洛伊德,跑的过程记最大点权。注意有后效性,需要迭代一下。按点权排序后再跑可以不用迭代,因为一定会先更新小的,再更新大的。注意是:变量名别写错???code#include<bits/st......
  • 7.12考试总结
    T1动态询问这个题主要考察快速排序求第k小O(n)的时间复杂度完成的方法主要错误原因在于,在一些情况下x与y并不连续,中间可能会各一个数,所以它的k需要注意这道在这个点上卡了很久,大概花费了1h左右,但感觉应该可以更快的解决,主要在于那道题没学好,一直记了一个错误的算法T2财富计算......
  • 2024 暑假友谊赛 1
    2024暑假友谊赛1A-......
  • GitHub每日最火火火项目(7.12)
    项目名称:public-apis/public-apis项目介绍:这是一个集体列表,包含了各种免费的API。该项目可能致力于收集和整理不同领域的免费API,为开发者提供便利,使其能够更轻松地获取所需的数据和功能。通过使用这些免费的API,开发者可以节省开发成本,提高开发效率,并且能够快速构......
  • 2024 暑假友谊赛-热身2
    1.G-......
  • 2024 暑假友谊赛-热身1
    1.B原题链接:https://vjudge.net/problem/AtCoder-arc100_a这是一个单峰函数,可以采取三分的方式求极值查看代码#include<bits/stdc++.h>#defineintlonglongconstintN=1e6;usingnamespacestd;intn,mi;inta[1000000];intcheck(intx){intsum=0;fo......