首页 > 其他分享 >Codeforces Round 919 (Div. 2)

Codeforces Round 919 (Div. 2)

时间:2024-01-14 17:12:13浏览次数:28  
标签:bj int Codeforces long 919 len solve Div define

Codeforces Round 919 (Div. 2)

A - Satisfying Constraints

#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;

const int N = 1e6 + 10;

void solve()
{
	int n;
	int l = -1;
	int r = 1e9 + 10;
	cin >> n;
	map<int,int> bj;
	for(int i=1;i<=n;i++)
	{
		int a,x;
		cin >> a >>x;
		if(a==3) bj[x]++;
		else if(a==1){
			l = max(l,x);
		}else if(a==2){
			r = min(r,x);
		}
	}
	int ans = r - l + 1;
	for(auto [x,y]:bj)
        if(x>=l&&x<=r) ans--;
	cout << max(ans,0ll) <<endl;
}

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

B - Summation Game

卡了好久才注意到数组里的元素都是正数。

#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;

const int N = 1e6 + 10;
int pre[N];
int a[N];
void solve()
{
	int n,k,x;
	cin >> n >> k >> x;
	for(int i=1;i<=n;i++) cin >> a[i];
	sort(a+1,a+1+n,greater<int>());
    for(int i=1;i<=n;i++) pre[i] = pre[i-1] + a[i];
	int ans = pre[n] - 2*pre[x];
	for(int i=1;i<=k;i++)
	{
		int sum = pre[n] - pre[i];
		int r = min(n,x+i);
		int len = pre[r] - pre[i];
		sum -= 2*len;
		ans = max(ans,sum);
	}
	cout << ans <<endl;
}

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

C - Partitioning the Array

数论不过关。

#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
typedef unsigned long long ull;
const int N = 2e5 + 10;
int a[N];
int n;

bool check(int k){
	int g=0;
	for(int i=1;i<=k;i++)
	{
		vector<int> path;
		for(int j=i;j<=n;j+=k)
			path.push_back(a[j]);
		sort(path.begin(),path.end());
		for(int j=1;j<path.size();j++)
			g = __gcd(g,path[j]-path[j-1]);
	}
	//cout << k << " " << g <<endl;
	return g!=1;
}

void solve()
{	
	cin >> n;
	for(int i=1;i<=n;i++)
	{
		cin >> a[i];
	}

	int ans = 0;
	for(int k=1;k<=n;k++){
		if(n%k) continue;
		if(check(k)) ans++;
	}

	cout << ans <<endl;
}

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

D - Array Repetition

int128魅力时刻

直接暴力模拟即可

小心卡常,长度超过1e18后就不要再继续增大了!!!

#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;

const int N = 1e5 + 10;
const int M = 1e18;
__int128_t len[N];
int bj[N],num[N];
int n,q;

void solve()
{	
	cin >> n >> q;
	int cnt = 0;
	for(int i=1;i<=n;i++)
	{
		int x,y;
		cin >> x >> y;
		cnt++;
		if(x==1)
		{
			len[i] = len[i-1] + 1;
			num[i] = y;
			bj[i] = 1;
		}
		else
		{
			len[i] = len[i-1]*(y+1);
			if(len[i]>M) len[i] = M + 1; //这句一定要,不然会卡常!!!!
			bj[i] = 2;
		}
	}

	for(int j=1;j<=q;j++)
	{
		int x;
		cin >> x;
		//int z=lower_bound(len+1,len+1+n,x)-len;
		//z=x;
		//cout << x <<" "<<z<<endl;
		for(int i=lower_bound(len+1,len+1+n,x)-len;i>0;i=lower_bound(len+1,len+1+i,x)-len){
			if(bj[i]==2)
			{
				x %= len[i-1];
				if(x==0) x=len[i-1];
				// if(z==4)
				// {
				// 	cout << i << " " <<x;
				// }
			}
			else
			{
				if(x==len[i]){	
					cout << num[i] <<" ";
					//cout << num[i] <<" "<<z<<endl;
					break;
				}else i--;
			}
		}
	}
	cout <<endl;
}

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

标签:bj,int,Codeforces,long,919,len,solve,Div,define
From: https://www.cnblogs.com/zfxyyy/p/17963913

相关文章

  • CodeForces 1920F2 Smooth Sailing (Hard Version)
    洛谷传送门CF传送门首先需要知道的一个trick:判断一个点是否在一个闭合回路内部,从这个点向任意方向引一条射线,若不考虑相切,那么和回路的交点为奇数时这个点在回路内部,否则在外部。那么这题要判断一个回路是否包含全部的island,可以找到任意一个island向右引一条射线。给每......
  • CF-1920-div2 总结
    1.结果赛时做出:AB(D)赛后做出:CD评分变化:1535->1500rank:45212.赛后总结>1个人评价这次比赛是我寒假的第一次,昨天坐了一天的动车,虽然平稳,但还是有晕车,导致晚上状态不好,个人因素还是有的。最主要的因素还是后一个小时太晕了,D题有个小问题没发现。除此之外,近期开始服用的药物让......
  • quasar <q-page>下面<div>自动计算height的问题
    由于要解决adsense引起的CLSissue,根据https://web.dev/articles/optimize-cls?utm_source=lighthouse&utm_medium=lr给出的建议,在广告的container上加上min-height。<divv-if="$q.platform.is.mobile"class="adsenseunitdetai......
  • Hey left 1 Codeforces Round 918 (Div. 4)
    题目链接A.3个数,其中2个数相同,输出不相同的那个可以用ifelse判断,较为麻烦用的map,输出出现一次的#include<bits/stdc++.h>usingnamespacestd;constintN=1e5+10;voidsolve(){map<int,int>mp;for(inti=0,x;i<3;i++){cin>>x;mp[x]++;......
  • div滚动加载数据
    <template><divstyle="border:1pxsolid#ccc;max-height:280px;width:100%;overflow-y:auto;"v-if="recordList.length>0"@scroll="onScroll"><divv-for="(item,index)inrecordList":key=......
  • CodeForces 1237H Balanced Reversals
    洛谷传送门CF传送门容易想到把\(s,t\)分成长度为\(2\)的段考虑。容易发现\(00,11\)的个数在操作过程中不会改变,所以若两串的\(00\)或\(11\)个数不相等则无解。考虑依次对\(i=2,4,\ldots,n\)构造\(s[1:i]=t[n-i+1:n]\)。对于\(s_{j-1}s_j=y......
  • Codeforces [Hello 2024]
    CodeforcesHello2024主打一个昏了头A.WalletExchange#include<bits/stdc++.h>#defineendl'\n'//#defineintlonglongusingnamespacestd;constintN=2e5+10;inta,b;voidsolve(){ cin>>a>>b; if((a+b)&1)cout<<......
  • CodeForces 1379E Inverse Genealogy
    洛谷传送门CF传送门\(n\)为偶数显然无解。否则我们可以构造一棵\(n\)个点的完全二叉树,当\(n+1\)是\(2\)的幂时满足\(m=1\),否则\(m=0\)。当\(n\ge5\)时可以递归至\((n-2,m-1)\),再挂一个叶子即可。但是可能会出现\(n+1\)不是\(2\)的幂,但\(n-......
  • 世微AP9196 DC-DC 升压恒流电源管理芯 升压降压应用线路图
    产品说明   AP9196是一系列外围电路简洁的宽调光比升压调光恒流驱动器,适用于3-40V输入电压范围的LED照明领域。AP9196采用我司专利算法,可以实现高精度的恒流效果,输出电流恒流精度≤±3%,电压工作范围为5-40V,可以轻松满足锂电池及中低压的应用需求,输出耐压仅由MOS耐压决定......
  • codeforces比赛(3):codeforces good_bye_2023
    A、2023跳转原题点击此:A题地址1、题目大意  在一个乘积可能等于2023的数组a中去掉了k个数,得到新的长度为n的b数列。请你输出k个数,使得这k个数与b数列相乘为2023.如果不存在则输出No。2、题目解析  因为这道题的n和k都是不超过5,所以我们只需要算出b数组的乘积是否是2023的......