CodeForces Round #298 Div.2
A. Exam
果然,并没有3分钟秒掉水题的能力,=_=||
n <= 4的时候特判。n >= 5的时候将奇数和偶数分开输出即可保证相邻的两数不处在相邻的位置。
#include <bits/stdc++.h>
using namespace std; int main()
{
int n;
cin >> n;
if(n <= ) puts("1\n1");
else if(n == ) puts("2\n1 3\n");
else if(n == ) puts("4\n2 4 1 3\n");
else
{
printf("%d\n", n);
vector<int> ans;
for(int i = ; i <= n; i+=) ans.push_back(i);
for(int i = ; i <= n; i+=) ans.push_back(i);
int sz = ans.size();
for(int i = ; i < sz; i++)
{
if(i) printf(" ");
printf("%d", ans[i]);
}
puts("");
} return ;
}
代码君
B. Covered Path (贪心)
第一秒的速度为v1,第t秒的速度为v2.
因为d很小,对于中间的每一秒,从d到-d枚举下一秒速度的变化量,只要保证在剩下的时间内能够减速到v2,这个速度变化量就是合法的。
#include <bits/stdc++.h> using namespace std; int main()
{
int v1, v2, t, d;
cin >> v1 >> v2 >> t >> d; vector<int> v; v.push_back(v1);
int now = v1; //当前车速
for(int i = ; i <= t-; i++)
{
int dd;
for(dd = d; dd >= -d; dd--)
if(now + dd <= (t - i) * d + v2)
break;
now += dd;
v.push_back(now);
}
v.push_back(v2);
int s = ;
for(int i = ; i < v.size(); i++) s += v[i];
printf("%d\n", s); return ;
}
代码君
C. Polycarpus' Dice
这n个骰子的点数之和为A。
对于某一个骰子,这个骰子的点数不能过大,因为这样可能使得其他骰子点数出现0的情况。
这个骰子点数也不能过小,因为可能剩余的骰子全部置为最大点也不能使总点数为A。
从这两个方面考虑,就能计算出每个骰子不可能出现的点数有多少种。
#include <iostream>
#include <bits/stdc++.h>
using namespace std; typedef long long LL; const int maxn = + ;
LL a[maxn]; int main()
{
LL n, A, s = ;
cin >> n >> A;
for(int i = ; i < n; i++) { scanf("%I64d", &a[i]); s += a[i]; }
for(int i = ; i < n; i++)
{
if(i) printf(" ");
LL ans = ;
ans += max(0LL, a[i] + n - - A);
LL ss = s - a[i];
ans += max(0LL, A - ss - );
printf("%I64d", ans);
}
puts(""); return ;
}
代码君
D. Handshakes (贪心 模拟 链表)
要和k个人握手的人可能有多个,所以我们用一个链表把他们连接起来。
以第二个样例为例:
9
0 2 3 4 1 1 0 2 2
和0个人握手的人有:1 7
和1个人握手的人有:5 6
和2个人握手的人有:2 8 9
和3个人握手的人有:3
和4个人握手的人有:4
这样我们可以先使7 6 9 3 4入场,然后没有人要和5个人握手,但是如果这五个人有三个人结成一队的话,那么8入场会和两个人握手。
这样还剩3个人,发现没有人要和3个人握手,于是这3个人结成一队。
1 5 2依次入场。
#include <cstdio> const int maxn = + ; int repr[maxn], next[maxn], a[maxn]; int main()
{
//freopen("in.txt", "r", stdin); int n; scanf("%d", &n);
for(int id = ; id <= n; id++)
{//id为和x个人握手的链表的编号
int x; scanf("%d", &x);
next[id] = repr[x]; //将id插入和x个人握手的链表的头部
repr[x] = id; //修改头指针
} int p = , now = ;
while(repr[now])
{
a[p++] = repr[now];
repr[now] = next[repr[now]]; //这个人已入场,修改头指针,相当于将其从链表中删除
now++;
while(repr[now] == && now >= ) now -= ;
}
if(p == n)
{
puts("Possible");
for(int i = ; i < n-; i++) printf("%d ", a[i]);
printf("%d\n", a[n-]);
}
else puts("Impossible"); return ;
}
代码君
CodeForces Round #298 Div.2的更多相关文章
- Codeforces Round #298 (Div. 2) A、B、C题
题目链接:Codeforces Round #298 (Div. 2) A. Exam An exam for n students will take place in a long and nar ...
- Codeforces Round #298 (Div. 2) E. Berland Local Positioning System 构造
E. Berland Local Positioning System Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.c ...
- Codeforces Round #298 (Div. 2) D. Handshakes 构造
D. Handshakes Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/534/problem ...
- Codeforces Round #298 (Div. 2) C. Polycarpus' Dice 数学
C. Polycarpus' Dice Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/534/p ...
- Codeforces Round #298 (Div. 2) B. Covered Path 物理题/暴力枚举
B. Covered Path Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/534/probl ...
- Codeforces Round #298 (Div. 2) A. Exam 构造
A. Exam Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/534/problem/A Des ...
- Codeforces Round #298 (Div. 2) B. Covered Path
题目大意: 一辆车,每秒内的速度恒定...第I秒到第I+1秒的速度变化不超过D.初始速度为V1,末速度为V2,经过时间t,问最远能走多远. 分析 开始的时候想麻烦了.讨论了各种情况.后来发现每个时刻的 ...
- Codeforces Round #298 (Div. 2)--D. Handshakes
#include <stdio.h> #include <algorithm> #include <set> using namespace std; #defin ...
- Codeforces Round #298 (Div. 2)A B C D
A. Exam time limit per test 1 second memory limit per test 256 megabytes input standard input output ...
随机推荐
- css 之优先策略
<html> <head> <title>testCSS</title> <style type="text/css"> ...
- jquey ajax 无刷新提交form
http://bbs.csdn.net/topics/380237868 $.ajax({ type: "POST", url:ajaxCallUrl, data:$('#your ...
- [C++]不能被继承的类
前面讲到,派生类的构造函数和析构函数会自动调用基类的构造函数和析构函数,那么要让一个类不能被继承,那么就将它的构造函数和析构函数私有函数(派生类可以访问保护函数).那么怎样才能得到该类的实例呢? 这倒 ...
- Tomcat内存溢出(java.lang.OutOfMemoryError: PermGen space)的解决办法
Tomcat启动时报如下错误: java.lang.OutOfMemoryError: PermGen space 解决办法: 配置相关内存大小.其中按照启动tomcat的不同方式,分如下三种情况 a ...
- 未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”
VS2012启动/加载项目出问题 未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage, Microsoft.Visual ...
- 重温《js权威指南》 第7,8章
第七章 数组 数组是值的有序集合.js数组是无类型的,数组元素可以是任意类型,同一个数组中不同元素也可能有不同的类型.数组可以动态增长或缩减,创建时无须生命那个一个固定的大小并且数组大 ...
- Cloudinsight Agent install script
#!/bin/bash # Cloudinsight Agent install script. set -e logfile="ci-agent-install.log" gis ...
- JavaPersistenceWithHibernate第二版笔记-第五章-Mapping value types-002使用@Embeddable
一.数据库 二.代码 1. package org.jpwh.model.simple; import javax.persistence.Column; import javax.persisten ...
- sublime3 乱码问题
解决方法: 一.安装Package Control 二.按Ctrl+Shift+P打开命令行,输入Install Package,回车,然后继续输入ConvertToUTF8,回车 (把GB2312 ...
- iOS keyChain
keychain在ios中是保存在sqlite数据库中的. 这个数据库文件的位置: 真机: /private/var/Keychains/keychain-2.db 虚拟机: /Users/USER- ...