首页 > 其他分享 >Codeforces Round 940 (Div. 2) and CodeCraft-23

Codeforces Round 940 (Div. 2) and CodeCraft-23

时间:2024-04-23 22:14:42浏览次数:20  
标签:CodeCraft 23 int vi Codeforces long i64 using TC

A. Stickogon

#include <bits/stdc++.h>

using namespace std;


using i32 = int32_t;
using i64 = long long;

#define int i64

using vi = vector<int>;

const int N = 3e5 , mod = 1e9+7; 

void solve(){
	vi cnt(101);
	int n;
	cin >> n;
	for(int i = 1, x; i <= n ; i ++)
		cin >> x, cnt[x] ++;
	int res = 0;
	for(int i = 1; i <= 100; i ++)
		res += cnt[i] / 3;
	cout << res << "\n";
}

i32 main(){
	ios::sync_with_stdio(false), cin.tie(nullptr);
	int TC;
	for(cin >> TC; TC; TC --)
		solve();
	return 0;
}

B. A BIT of a Construction

#include <bits/stdc++.h>

using namespace std;


using i32 = int32_t;
using i64 = long long;

#define int i64

using vi = vector<int>;

const int N = 3e5 , mod = 1e9+7; 

void solve(){
	int n, k;
	cin >> n >> k;
	if(n == 1) cout << k << "\n";
	else {
		int x = 0;
		while(x * 2 + 1 <= k) x = x * 2 + 1;
		cout << x << " " << k - x;
		for(int i = 1 ; i <= n - 2 ; i ++)
			cout << " 0";
		cout << "\n";
	}
}

i32 main(){
	ios::sync_with_stdio(false), cin.tie(nullptr);
	int TC;
	for(cin >> TC; TC; TC --)
		solve();
	return 0;
}

C. How Does the Rook Move?

首先和格子的放置方式没有关系,只需要考虑剩下多少行没有被占。

\(f[i]\)表示有\(i\)行没有被占领,则\(f[0] = f[1] = 1, f[i] = f[i-1] + 2\times C_{i-1}^{1} \times f[i-2]\)

#include <bits/stdc++.h>

using namespace std;

using i32 = int32_t;
using i64 = long long;

#define int i64

using vi = vector<int>;

const int N = 3e5 , mod = 1e9+7; 

vi f(N+1);

void solve(){
	int n , m;
	cin >> n >> m;
	for(int x, y; m; m --) {
		cin >> x >> y;
		n -= 1 + (x != y);
	}
	cout << f[n] << "\n";
}

i32 main(){
	ios::sync_with_stdio(false), cin.tie(nullptr);
	f[0] = f[1] = 1;
	for( int i = 2 ; i <= N; i ++ )
		f[i] = (f[i-1] + 2 * (i-1) * f[i-2]) % mod;
	int TC;
	for(cin >> TC; TC; TC --)
		solve();
	return 0;
}

D. A BIT of an Inequality

题目的式子很容易化成\(f(x,z)\oplus a_y > f(x,z)\)。

有一个性质是,\(a_y\)的最高位的\(1\)如果是第\(h\)位,则\(f(x,z)\)第\(h\)位必须是\(0\),其他位随意,所以直接统计哪些包含\(y\)的区间满足条件,这里可以用到前缀和和后缀和实现。

#include <bits/stdc++.h>

using namespace std;


using i32 = int32_t;
using i64 = long long;

#define int i64

using vi = vector<int>;

const int G = 30; 

void solve(){
	int n;
	cin >> n;
	vi a(n+1) , s(n + 1);
	for(int i = 1; i <= n; i ++) 
		cin >> a[i], s[i] = s[i - 1] ^ a[i];

	vector pre(G, vi(2));
	vector suf(n + 2, vector(G, vi(2)));
    
	for(int i = 0; i < G; i ++ )
		pre[i][0] = 1;
	for(int i = n; i >= 1 ; i -- ){
		suf[i] = suf[i+1];
		for(int j = 0; j < G; j ++)
			suf[i][j][(s[i] >> j) & 1] ++;
	}

	i64 res = 0;
	for(int i = 1, h; i <= n ; i ++){
		h = log2(a[i]);
		for(int l = 0; l < 2; l ++)
			res += pre[h][l] * suf[i][h][l];
		for(int j = 0; j < G; j ++)
			pre[j][(s[i] >> j) & 1] ++;
	}
	cout << res << "\n";
 	return ;
}

i32 main(){
	ios::sync_with_stdio(false), cin.tie(nullptr);
	int TC;
	for(cin >> TC; TC; TC --)
		solve();
	return 0;
}

标签:CodeCraft,23,int,vi,Codeforces,long,i64,using,TC
From: https://www.cnblogs.com/PHarr/p/18153863

相关文章

  • 2024.4.23 近期练习
    CF1924D先考虑一个串的最长合法序列,维护一个栈,答案就是右括号加入时栈非空的次数。我们看成从\((0,0)\)走到\((n,m)\),发现没被匹配的右括号个数就是\(x-y\)的最大值。要想只有\(k\)个匹配,那么要和\(x-y=m-k\)“相切”。若\(f(k)\)表示穿过直线的方案数,答案是\(f(k......
  • 2024/4/23
    今天上午计算机网络课程下午的软件工程课程中学习了:用户需求分析是软件开发过程中至关重要的一步,它确保了开发团队和最终用户之间的需求理解一致性。用户需求分析的过程通常包括以下几个关键步骤:需求收集:这是识别和收集用户需求的阶段。开发团队通过与客户和最终用户进行沟通......
  • 2023中国企业敏捷实践白皮书发布,免费下载
    《2023中国企业敏捷实践白皮书》发布!免费下载在人工智能技术飞速发展,组织面临的复杂性和多变性不断加剧的背景下,《2023中国企业敏捷实践白皮书》通过广泛的调查,洞察剧变之下,谁在逆流而上,如何逆流而上。敏捷作为适应市场变化的关键策略,已被越来越多的企业采用,然而新技术与经济......
  • Codeforces Round 892 (Div. 2) 复盘
    A没啥好说的。B也是,很简单的贪心。但是AB都因为读题导致的理解误差wa了一发。哎,读题读错,只能说英语还得练。C,赛时没做出来,后面的也是。这个题目其实思路已经有了,cf的这种题,还放在C题,那就是很明显那种能打标看出规律的东西。就算知道了是打表能看出来的,我懒得写暴力,所以就一直......
  • 2351. 第一次出现两次的字母
    题目链接:自己的做法:classSolution{public:charrepeatedCharacter(strings){intn=s.size(); vector<int>v(28); vector<pair<char,int>>p; for(inti=0;i<s.size();i++){ intj=s[i]-'a'......
  • MySQL的在sync_binlog!=1造成1236报错【转】
    前言本文总结了主从复制的原理及日常运维的坑1.主从复制简介MySQL复制是指从一个MySQL主服务器(master)将数据拷贝到另一台或多台MySQL从服务器(slaves)的过程,将主数据库的DDL和DML操作通过二进制日志传到从库服务器上,然后在从服务器上对这些日志重新执行,从而使得主......
  • Codeforces Round 940 (Div. 2) and CodeCraft-23
    CodeforcesRound940(Div.2)andCodeCraft-23前四题难度适中,总体还算不错,我想想都能做。E题考察威尔逊和质数筛前缀和算贡献。F题是数据结构,据说很版,还没补。A题:题意:给出n个木棍,最多组成多少个多边形Solution:统计各长度木棍的数量,全部贪心成三角形voidsolve(){ cin>>n;......
  • 界面组件DevExpress Blazor UI v23.2 - 支持.NET 8、全新的项目模版
    DevExpress BlazorUI组件使用了C#为BlazorServer和BlazorWebAssembly创建高影响力的用户体验,这个UI自建库提供了一套全面的原生BlazorUI组件(包括PivotGrid、调度程序、图表、数据编辑器和报表等)。DevExpress Blazor控件目前已经升级到v23.2版本了,新版本正式支持.NET8、拥......
  • 【专题】2023年中国社会办口腔医疗企业报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=34300原文出处:拓端数据部落公众号口腔健康是整体健康的重要基石,当前,无论是哪个年龄段的人群,或多或少都会受到口腔问题的困扰。随着国民口腔健康意识的不断提高,消费者对口腔医疗服务的需求日益多元化,口腔医疗行业也迎来了快速发展阶段。阅读原文,获......
  • Codeforces 1863F Divide, XOR, and Conquer
    记\(s_{l,r}=\oplus_{i=l}^ra_i\)。考虑到这个相当于是\([l,r]\)内分裂区间,可以考虑区间\(\text{DP}\)。即记\(f_{l,r}\)为\([l,r]\)区间是否能被遍历到。转移考虑对于\([l,r]\),考虑在已知的条件下(\(len\ger-l+1\))\([l,r]\)是否合法。即到这个状态......