zoukankan      html  css  js  c++  java
  • Codeforces Round #666 (Div. 1) 题解 (AB)

    很水警告

    A. Multiples of Length

    因为 (a[i]-a[i]cdot n+a[i]cdot (n-1)=0),我们取区间 ([1,n]) 和 区间 ([1,n-1]),对 (a[i]) 加上 (-a[i]cdot n)(a[i]cdot (n-1))。第三个区间取 ([n,n]) 就行了

    #include <bits/stdc++.h>
    using namespace std;
    #define repeat(i,a,b) for(int i=(a),_=(b);i<_;i++)
    #define repeat_back(i,a,b) for(int i=(b)-1,_=(a);i>=_;i--)
    int cansel_sync=(ios::sync_with_stdio(0),cin.tie(0),0);
    const int N=200010; typedef long long ll; const int inf=~0u>>2; const ll INF=~0ull>>2; ll read(){ll x; if(scanf("%lld",&x)==-1)exit(0); return x;}
    ll a[N];
    void Solve(){
    	int n=read();
    	repeat(i,0,n)a[i]=read();
    	cout<<1<<' '<<n<<endl;
    	repeat(i,0,n)cout<<-a[i]*n<<' '; cout<<endl;
    	if(n>1){ //特判一下
    		cout<<1<<' '<<n-1<<endl;
    		repeat(i,0,n-1)cout<<a[i]*(n-1)<<' '; cout<<endl;
    	}
    	else{
    		cout<<1<<' '<<1<<endl;
    		cout<<0<<endl;
    	}
    	cout<<n<<' '<<n<<endl;
    	cout<<a[n-1]*(n-1)<<endl;
    }
    signed main(){
    	//freopen("data.txt","r",stdin);
    	int T=1; //T=read();
    	repeat(ca,1,T+1){
    		Solve();
    	}
    	return 0;
    }
    

    B. Stoned Game

    如果有一堆石子数大于其他所有石子数之和,那么先手可以一直霸占这一堆,就能获胜

    反之,如果上述情况不成立,显然一直霸占的情况不会出现(整局游戏都是这样,双方不会傻到把可霸占的石子堆让对方占去),也就是说,最后一定是拿完所有石子一个不留。这时候判断一下总石子数的奇偶性即可

    #include <bits/stdc++.h>
    using namespace std;
    #define repeat(i,a,b) for(int i=(a),_=(b);i<_;i++)
    #define repeat_back(i,a,b) for(int i=(b)-1,_=(a);i>=_;i--)
    int cansel_sync=(ios::sync_with_stdio(0),cin.tie(0),0);
    const int N=200010; typedef long long ll; const int inf=~0u>>2; const ll INF=~0ull>>2; ll read(){ll x; if(scanf("%lld",&x)==-1)exit(0); return x;}
    int a[N];
    void Solve(){
    	int n=read(),s=0,mx=0;
    	repeat(i,0,n)a[i]=read(),mx=max(mx,a[i]),s+=a[i];
    	if(s-mx<mx || s%2==1)cout<<"T"<<endl;
    	else cout<<"HL"<<endl;
    }
    signed main(){
    	//freopen("data.txt","r",stdin);
    	int T=1; T=read();
    	repeat(ca,1,T+1){
    		Solve();
    	}
    	return 0;
    }
    

    C题应该是类似dp的写法,(O(n)) 吧,一般这种题目我都叫队友写(不是

  • 相关阅读:
    Java实现找出数组中重复次数最多的元素以及个数
    java经典小算法
    java将数组中的零放到末尾
    BP神经网络
    Centos配置Caffe详解
    JAVA面试题之实现字符串的倒序输出
    Android 发送短信与接收短信
    java 选择排序法
    java数组获取最值
    spring kafka consumer原理解析二
  • 原文地址:https://www.cnblogs.com/axiomofchoice/p/13587457.html
Copyright © 2011-2022 走看看