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的更多相关文章

  1. 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 ...

  2. 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 ...

  3. Codeforces Round #298 (Div. 2) D. Handshakes 构造

    D. Handshakes Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/534/problem ...

  4. 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 ...

  5. 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 ...

  6. 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 ...

  7. Codeforces Round #298 (Div. 2) B. Covered Path

    题目大意: 一辆车,每秒内的速度恒定...第I秒到第I+1秒的速度变化不超过D.初始速度为V1,末速度为V2,经过时间t,问最远能走多远. 分析 开始的时候想麻烦了.讨论了各种情况.后来发现每个时刻的 ...

  8. Codeforces Round #298 (Div. 2)--D. Handshakes

    #include <stdio.h> #include <algorithm> #include <set> using namespace std; #defin ...

  9. 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 ...

随机推荐

  1. Asp.net MVC 实现图片上传剪切

    使用技术:Asp.net MVC与jquery.uploadify,Jcrop 首先上页面 01 <strong><!DOCTYPE html> 02  <html> ...

  2. Sqli-labs less 61

    Less-61 此处对于id处理还是有点奇葩的,第一次遇到利用两层括号的.(可能我头发比较长,见识短了).形式和上述是一样的 payload: http://127.0.0.1/sqli-labs/L ...

  3. MariaDB Galera Cluster 部署(如何快速部署 MariaDB 集群)

    MariaDB Galera Cluster 部署(如何快速部署 MariaDB 集群)  OneAPM蓝海讯通7月3日 发布 推荐 4 推荐 收藏 14 收藏,1.1k 浏览 MariaDB 作为 ...

  4. C#&java重学笔记(函数)

    C#部分  1.写在函数定义的()中的关键字: a.params关键字:用来满足函数的参数为数组时,而数组的长度不固定的情况.且该关键字只能用来修饰数组型参数.这样一修饰,就达成了类似JavaScri ...

  5. HDU5008 Boring String Problem(后缀数组)

    练习一下字符串,做一下这道题. 首先是关于一个字符串有多少不同子串的问题,串由小到大排起序来应该是按照sa[i]的顺序排出来的产生的. 好像abbacd,排序出来的后缀是这样的 1---abbacd ...

  6. HDU 1163 Eddy's digital Roots(模)

    HDU 1163 题意简单,求n^n的(1)各数位的和,一旦和大于9,和再重复步骤(1),直到和小于10. //方法一:就是求模9的余数嘛! (228) leizh007 2012-03-26 21: ...

  7. ExtJs之Ext.form.field.TimePicker DatePicker组合框

    <!DOCTYPE html> <html> <head> <title>ExtJs</title> <meta http-equiv ...

  8. ExtJs尝下鲜

    感觉进入了一个新天地. WIN时代的API + 浏览器的窗口. 复古风了? 真的是好多年前还有点印象的DELPHI及MFC啊. <!DOCTYPE html> <html> & ...

  9. spring_150806_hibernate_non_transaction

    添加hibernate的相关jar包! 实体类: package com.spring.model; import javax.persistence.Entity; import javax.per ...

  10. 最近工作用到的sql脚本

    USE MadeInChina DUMP TRANSACTION MadeInChina WITH NO_LOG --清除日志 BACKUP LOG MadeInChina WITH NO_LOG B ...