首页 > 其他分享 >200天1000题 (DAY 6)

200天1000题 (DAY 6)

时间:2022-09-20 22:36:07浏览次数:71  
标签:200 return int cin -- vector sensei DAY 1000

200天1000题 (DAY 6)

目前总题数: 26

目前CF分数: 1325

T1 (Codeforces #821 DIV. 2) A - Consecutive Sum

/*
	比较简单的一题。
*/
 
const int N = 1e6 + 10;
 
 
 
inline void sensei()
{
    int n,k;
    cin >> n >> k;
    vector<int> a(n+1);
    vector<int> ans(n+1,-inf_ll);
    for(int i=0;i<n;i++){
        cin >> a[i];
    }
    for(int i=0;i<n;i++){
        ans[i%k] = max(ans[i%k],a[i]);
    }
    int ret = 0;
    for(int i=0;i<k;i++){
        ret += ans[i];
    }
    cout << ret << endl;
}
 
signed main()
{
    fuckios
    int t;
    cin >> t;
    while(t --)
    {
        sensei();
    }
    return 0;
}

T2 (Codeforces #821 DIV. 2) B - Rule of League

/*
	题目大意:给你三个数字 n,x,y
	表示一共有n个人要来打羽毛球比赛
	比赛规则如下, 第一个人先和第二个人打一轮
	胜者和第三人打一轮,以此类推直到和第n人进行了比赛,现在,x,y表示每个人要么赢了x场要么赢了y场,请问每一轮的胜者的编号?(如果x,y对于这样的比赛不合理,输出-1)
	
	结论题
*/


const int N = 1e6 + 10;
 
 
 
inline void sensei()
{
    int n,x,y;
    cin >> n >> x >> y;
    if(x > y) swap(x,y);
    if(x!=0) {
        puts("-1");
        return ;
    }
    if(y == 0 or (n-1)%y!=0){
        cout << -1 << endl;
        return ;
    }
    int ans;
    for(int i=0;i<n-1;i++){
        ans = i-i%y+2 ;
        cout << ans << ' ';
    }
    cout << endl;
}
 
signed main()
{
    int t;
    cin >>t;
    while(t --){
        sensei();
    }
    return 0;
}

T3 (Codeforces #821 DIV. 2) C - Parity Shuffle Sorting

/*
	贪心,构造
*/

struct node {
	int x;
	int y;
};

const int N = 1e6 + 10;



inline void sensei()
{
	int n;
	cin >> n;
	vector<node> ans; // 存答案
	vector<int> a(n + 1);
	for (int i = 0; i < n; i++) {
		cin >> a[i];
	}
	if (n == 1) {
        // 特判 1
		cout << 0 << endl;
		return ;
	}
	if ((a[0] + a[n-1]) % 2 == 0) {
        // 如果 第一个和最后一个同奇或同偶 那么直接令最后一个等于第一个
		a[0] = a[n - 1];
		ans.push_back({0, n - 1});
	}

	for (int i = 1; i < n; i++) {
        // 从下标1开始遍历
        // 如果有a[i] + a[0] ==  even 的数
        // 直接赋值
		if ((a[0] % 2) != (a[i] % 2)) {
			ans.push_back({0, i});
			a[i] = a[0];
		}
	}

	for (int i = n - 2; i >= 0; i--) {
        // 同理 倒着遍历一边
		if (a[i] != a[n - 1]) {
			ans.push_back({i, n - 1});
			a[i] = a[n - 1];
		}
	}
    
    // 输出答案
	cout << ans.size() << endl;
	for (int i = 0; i < ans.size(); i++) {
		cout << ans[i].x + 1 << ' ' << ans[i].y + 1 << endl;
	}
}

signed main()
{
	fuckios
	int t;
	cin >> t;
	while (t --) {
		sensei();
	}
	return 0;
}

T4 (Codeforces #821 DIV. 2) D1. Zero-One (Easy Version)

/*
	贪心,结论
*/


inline void sensei()
{
	int n, x, y;
	cin >> n >> x >> y;
	vector<int> c(n + 1);
	vector<int> a(n + 1);
	vector<int> b(n + 1);
	int cnt = 0;
	for (int i = 1; i <= n; i++) {
		char alls;
		cin >> alls;
		a[i] = alls - '0';
	}
	for (int i = 1; i <= n; i++) {
		char alls;
		cin >> alls;
		b[i] = alls - '0';
	}
	for (int i = 1; i <= n; i++) {
		if (a[i] != b[i] and (a[i] == 1 or b[i] == 1)) {
			c[i] = 1;
			cnt++;
		}
	}
	if (cnt & 1) {
		cout << -1 << endl;
		return ;
	}
	int ans = 0;
	if (cnt == 2) {
		int l, r;
		l = 1, r = n;
		while (c[l] == 0) {
			l ++;
		}
		while (c[r] == 0) {
			r --;
		}
        debug(l);
        debug(r);
        
		if (l + 1 == r) {
			ans = min(2 * y, x);
		} else {
			ans = min((r - l) * x, y);
		}
	} else {
		ans = (cnt / 2) * y;
	}
	cout << ans << endl;
}

signed main()
{
#ifndef LOCAL
	fuckios
#endif

	int t;
    cin >> t;
    
	while (t--) {
		sensei();
	}

	return 0;
}

标签:200,return,int,cin,--,vector,sensei,DAY,1000
From: https://www.cnblogs.com/BeB0p/p/16712859.html

相关文章

  • [NOIP2000 提高组] 单词接龙
    [NOIP2000提高组]单词接龙题目背景注意:本题为上古NOIP原题,不保证存在靠谱的做法能通过该数据范围下的所有数据。题目描述单词接龙是一个与我们经常玩的成语接龙相......
  • JavalearnDay02
    变量表达式相关概念:(一)常量​ 概念:常量,在程序中运行过程中,值不能发生改变的量(数值).(二)计算机存储单元计算机存储设备的最小信息单元叫“位(bit)”,我们又称之为......
  • day01-项目开发流程
    多用户即时通讯系统011.项目开发流程2.需求分析用户登录拉取在线用户列表无异常退出(包括客户端和服务端)私聊群聊发文件服务器推送新闻/广播3.设计阶段3.1界......
  • Day04笔记
    01.explicit的作用(了解)classMaker{public: //explicit只能放在构造函数前面,构造函数只有一个参数或其他参数有默认值时 explicitMaker(intn)//防止编译器优化Mak......
  • 01 uniapp/微信小程序 项目day01
    一.起步1.1配置uni-app开发环境什么是uni-app,就是基于vue的一个开发框架,可以将我们写的一套代码,同时发布到ios、安卓、小程序等多个平台官方推荐使用Hbuilderx来写uni......
  • 前端Day01
                                                   ......
  • 通关基本算法 day_04 -- 高精度
    高精度加法大整数如何存储? --每一位存到数组里例如:123456789 第0位存谁?--存9因为如果0位存最后一位,需要乘法的时候,在数组末尾添加数字要比数组开端添加数字方便......
  • day1
    这是我的第一篇博客测试一下字体大小字体大小字体大小字体大小publicvoidinsert(Tt){if(isempty()){NodenewNode=newNode(head,nu......
  • 前端Nodejs-Day34
    Node.js:基于ChromeV8引擎的Javascript运行环境浏览器中js的运行环境:前端运行环境Nodejs中js的运行环境:后端运行环境(无法调用DOM和BOM等浏览器内置API)  ......
  • JavaStudy Day03-循环 条件判断
    一、while循环死循环/***死循环*/while(true){System.out.println("helloworld");}循环的三要素publicc......