2021-03-17 作日两题

今天晚上参加比赛的人真少,这怕不是又要掉分。

D. Even-Odd Game

题意:A先挑选数字,如果为偶数,则加到A,为奇数则不变,B接着挑数字,如果为偶数,值不变,为奇数,则加到B。A,B都采取最优的方法,你需要判断谁最后能赢。
我们知道,如果A挑了偶数,则其加上,挑奇数,可变向的认为B无法再选这个奇数,为了使自己的值最大,B的值最小,每次都要挑选最大的数,B同理。

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 200010;

int a[N];
int t, n;

bool cmp(int a, int b)
{
	return a > b;
}

int main()
{
	cin >> t;
	while (t -- )
	{
		scanf("%d", &n);
		for (int i = 1; i <= n; i ++ ) scanf("%d", &a[i]);
		sort(a + 1, a + 1 + n, cmp);
		ll ansa = 0, ansb = 0;
		for (int i = 1; i <= n; i ++ )
		{
			if (i % 2 == 1)
			{
				if (a[i] % 2 == 1) ansa += 0;
				else ansa += a[i];
			}
			else 
			{
				if (a[i] % 2 == 1) ansb += a[i];
				else ansb += 0;
			}
		}
		if (ansa == ansb) cout << "Tie" << endl;
		else if (ansa > ansb) cout << "Alice" << endl;
		else cout << "Bob" << endl;
	}
	return 0;
}

C. Berpizza

题意:M服务最早来饭店的顾客。P服务能付出的钱最多的顾客,如果付出前相同,则服务来的时间早的人。每次服务后,都将被服务的人的序号输出来,序号按照顾客来到饭店的时间顺序从1开始排。
学到了集合的重载运算符。
之前学的优先队列的重载运算符

struct cmp{
	bool operator () (const node &a, const node &b) const {
		if (a.prior == b.prior)
		    return a.id > b.id;
		return a.prior < b.prior;
	}
};
priority_queue <node, vector<node>, cmp> doc[4];
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<int, int> PII;
const int N = 500050;

struct cmp
{
	bool operator () (const PII &a, const PII &b) const
	{
		if (a.first != b.first) return a.first > b.first;
		return a.second < b.second;
	}
};

set<PII, cmp> q1;
set<int> q2;
int cnt[N];
int q;
int op, x;

int main()
{
	cin >> q;
	int idx = 0;
	while (q -- )
	{
		cin >> op;
		if (op == 1)
		{
			cin >> x;
			cnt[ ++ idx] = x;
			q1.insert({x, idx});
			q2.insert(idx);
		}
		else if (op == 2)
		{
			int cur = *q2.begin();
			q2.erase(cur);
			q1.erase({cnt[cur], cur});
			cout << cur << ' ';
		}
		else 
		{
			PII tmp = *q1.begin();
			int cur = tmp.second;
			q1.erase(tmp);
			q2.erase(cur);
			cout << cur << ' ';
		}
	}
	return 0;
} 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可课程设计与期末大业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可课程设计与期末大业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可课程设计与期末大业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可课程设计与期末大业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可课程设计与期末大业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可课程设计与期末大业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可课程设计与期末大业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可课程设计与期末大业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问,欢迎随时与博主沟通,博主会及时解答。
这段代码存在一些语法错误。具体来说: 1. `console.log` 方法中的字符串应该使用引号括起来,例如 `"每页 ${val} 条"` 和 `"当前页: ${val}"`。 2. `toggleContent` 方法应该定义在 `methods` 对象中,并且缺少一个左大括号 `{`。 3. `toggleContent` 方法中的 `console.log` 方法没有使用正确的字符串格式化,应该使用反引号括起来,并在占位符 `${}` 中使用变量名,例如 ``console.log(`当前高度: ${content.style.height}`)``。 4. 在 `v-for` 指令中,应该使用 `v-bind:key` 显式地绑定 `tableData` 数组中每个对象的唯一标识符,例如 `v-for="(item, index) in tableData" v-bind:key="item.number"`。 下面是修正后的代码: ``` <script> let v = new Vue({ el: '#app', data: { value1: '', value2: '', pickerOptions: { shortcuts: [ { text: '今天', onClick(picker) { picker.$emit('pick', new Date()); } }, { text: '昨天', onClick(picker) { const date = new Date(); date.setTime(date.getTime() - 3600 * 1000 * 24); picker.$emit('pick', date); } }, { text: '一周前', onClick(picker) { const date = new Date(); date.setTime(date.getTime() - 3600 * 1000 * 24 * 7); picker.$emit('pick', date); } } ] }, tableData: [ { number: '1', date: '2021-08-01' }, { number: '2', date: '2021-08-01' }, { number: '3', date: '2021-08-01' }, { number: '4', date: '2021-08-01' }, { number: '5', date: '2021-08-01' }, { number: '6', date: '2021-08-01' }, { number: '7', date: '2021-08-01' }, { number: '8', date: '2021-08-01' } ], currentPage1: 5, currentPage2: 5, currentPage3: 5, currentPage4: 4 }, methods: { deleteRow(index, rows) { rows.splice(index, 1); }, handleSizeChange(val) { console.log(`每页 ${val} 条`); }, handleCurrentChange(val) { console.log(`当前页: ${val}`); }, toggleContent() { var content = document.getElementById("content"); var btn = document.getElementById("toggle-btn"); if (content.style.height === "100px") { content.style.height = "auto"; btn.innerHTML = "收起"; } else { content.style.height = "100px"; btn.innerHTML = "展开"; } console.log(`当前高度: ${content.style.height}`); } } }); </script> <table> <thead> <tr> <th>序号</th> <th>期</th> <th>操</th> </tr> </thead> <tbody> <tr v-for="(item, index) in tableData" v-bind:key="item.number"> <td>{{ item.number }}</td> <td>{{ item.date }}</td> <td><button @click="deleteRow(index, tableData)">删除</button></td> </tr> </tbody> </table> <div class="pagination"> <el-pagination background layout="sizes, prev, pager, next, jumper" :current-page.sync="currentPage1" :page-sizes="[5, 10, 20]" :page-size="5" @size-change="handleSizeChange" @current-change="handleCurrentChange" :total="tableData.length" ></el-pagination> </div> <div id="content" style="overflow: hidden; height: 100px;"> 这是一段需要展开的内容。 </div> <button id="toggle-btn" @click="toggleContent">展开</button> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值