Codeforces Round 883 (Div. 3) A~E

A.Rudolph and Cut the Rope

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e7 + 10;
const int M = 1e9+7;

signed main(){
	int t;
	cin>>t;
	while(t--)
	{
		int n;
		cin>>n;
		int ans=0;
		while(n--){
			int a,b;
			cin>>a>>b;
			if(a>b) ans++;
		}
		cout<<ans<<endl;
	}
	return 0;
} 

B.Rudolph and Tic-Tac-Toe

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e7 + 10;
const int M = 1e9+7;
map<int,string> s;
signed main(){
	int t;
	cin>>t;
	s[0]="OOO";
	s[1]="XXX";
	s[2]="+++";
	while(t--){
		string s1,s2,s3,s4,s5,s6,s7,s8;
		cin>>s1>>s2>>s3;
		s4=s1.substr(0,1)+s2.substr(0,1)+s3.substr(0,1);
		s5=s1.substr(1,1)+s2.substr(1,1)+s3.substr(1,1);
		s6=s1.substr(2,1)+s2.substr(2,1)+s3.substr(2,1);
		s7=s1.substr(0,1)+s2.substr(1,1)+s3.substr(2,1);
		s8=s1.substr(2,1)+s2.substr(1,1)+s3.substr(0,1);
		for(int i=0;i<3;i++)
		{
			if(s1==s[i]){
				cout<<s[i][0]<<endl;
				break;
			}
			if(s2==s[i]){
				cout<<s[i][0]<<endl;
				break;
			}
			if(s3==s[i]){
				cout<<s[i][0]<<endl;
				break;
			}
			if(s4==s[i]){
				cout<<s[i][0]<<endl;
				break;
			}
			if(s5==s[i]){
				cout<<s[i][0]<<endl;
				break;
			}
			if(s6==s[i]){
				cout<<s[i][0]<<endl;
				break;
			}
			if(s7==s[i]){
				cout<<s[i][0]<<endl;
				break;
			}
			if(s8==s[i]){
				cout<<s[i][0]<<endl;
				break;
			}
			if(i==2) cout<<"DRAW"<<endl;
		}
 	}
 	
	return 0;
} 

C.Rudolf and the Another Competition

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e7 + 10;
const int M = 1e9+7;
int b[N];

signed main(){
	int t;
	cin>>t;
	while(t--){
		int x,y,z;
			int ttt=1;
			int ans1=0;
			int time1=0;
		cin>>y>>x>>z;
	
		for(int i=0;i<y;i++)
		{	
			for(int j=0;j<x;j++)
			{
				cin>>b[j];
			}
			sort(b,b+x);
		
			int ans=0;
			int time=0;
			for(int j=0;j<x;j++){
				if(j!=0) b[j]+=b[j-1];
				 if(b[j]<=z){
				 	ans++;
				 	time+=b[j];
				 } 
			}
			if(i==0) ans1=ans,time1=time;
			else{
				if(ans>ans1) ttt++;
				else if(ans==ans1&&time<time1) ttt++;
			}
	
	
		}
			cout<<ttt<<endl;
	}
	return 0;
} 

D.Rudolph and Christmas Tree


#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e7 + 10;
const int M = 1e9+7;
long double b[N]={0};

signed main(){
	int t;
	cin>>t;
	while(t--){
		long double ans=0;
		int x;
		long double y,z;
		cin>>x>>y>>z;
		long double k=(double)z*y/2;
		
		for(int i=0;i<x;i++){
			 cin>>b[i];
			 ans+=k;
		}
		for(int i=1;i<x;i++){
			if(b[i]-b[i-1]<z){
				long double ll=(double)k*(z-(double)(b[i]-b[i-1]))/z*(z-(double)(b[i]-b[i-1]))/z;
				ans-=ll;
			} 
		}
	printf("%.6Lf\n",ans);
	}
	return 0;
} 

开long double 数学算面积

E2.Rudolf and Snowflakes (hard version)


#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e7 + 10;
const int M = 1e9+7;
long double b[N]={0};

signed main(){
	int t;
	cin>>t;
	while(t--){
		long double ans=0;
		int x;
		long double y,z;
		cin>>x>>y>>z;
		long double k=(double)z*y/2;
		
		for(int i=0;i<x;i++){
			 cin>>b[i];
			 ans+=k;
		}
		for(int i=1;i<x;i++){
			if(b[i]-b[i-1]<z){
				long double ll=(double)k*(z-(double)(b[i]-b[i-1]))/z*(z-(double)(b[i]-b[i-1]))/z;
				ans-=ll;
			} 
		}
	printf("%.6Lf\n",ans);
	}
	return 0;
} 

1 ~ 1e6的数据进行预运算,1e6 ~ 1e9的数据满足1+k+k*k=n,用公式进行运算。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Codeforces Round 894 (Div. 3) 是一个Codeforces举办的比赛,是第894轮的Div. 3级别比赛。它包含了一系列题目,其中包括题目E. Kolya and Movie Theatre。 根据题目描述,E. Kolya and Movie Theatre问题要求我们给定两个字符串,通过三种操作来让字符串a等于字符串b。这三种操作分别为:交换a中相同位置的字符、交换a中对称位置的字符、交换b中对称位置的字符。我们需要先进行一次预处理,替换a中的字符,然后进行上述三种操作,最终得到a等于b的结果。我们需要计算预处理操作的次数。 根据引用的讨论,当且仅当b[i]==b[n-i-1]时,如果a[i]!=a[n-i-1],需要进行一次操作;否则不需要操作。所以我们可以遍历字符串b的前半部分,判断对应位置的字符是否与后半部分对称,并统计需要进行操作的次数。 以上就是Codeforces Round 894 (Div. 3)的简要说明和题目E. Kolya and Movie Theatre的要求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Codeforces Round #498 (Div. 3) (A+B+C+D+E+F)](https://blog.csdn.net/qq_46030630/article/details/108804114)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Codeforces Round 894 (Div. 3)A~E题解](https://blog.csdn.net/gyeolhada/article/details/132491891)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值