Home  >  Article  >  Database  >  Codeforces Round #247 (Div. 2) ABC

Codeforces Round #247 (Div. 2) ABC

WBOY
WBOYOriginal
2016-06-07 15:25:131106browse

Codeforces Round #247 (Div. 2) http://codeforces.com/contest/431 代码均已投放:https://github.com/illuz/WayToACM/tree/master/CodeForces/431 A - Black Square 题目地址 题意 : Jury玩别踩白块,游戏中有四个区域,Jury点每个区域要消耗ai的卡路里

Codeforces Round #247 (Div. 2)

http://codeforces.com/contest/431 
代码均已投放:https://github.com/illuz/WayToACM/tree/master/CodeForces/431


A - Black Square

题目地址

题意: 
Jury玩别踩白块,游戏中有四个区域,Jury点每个区域要消耗ai的卡路里,给出踩白块的序列,问要消耗多少卡路里。

分析: 
模拟水题..

代码

/*
*  Author:      illuz <iilluzen>
*  File:        a.cpp
*  Create Date: 2014-05-21 23:33:25
*  Descripton:   
*/

#include <cstdio>
#include <iostream>
#include <string>
using namespace std;

int a[5], ans;
string s;

int main()
{
	for (int i = 1; i > a[i];
	cin >> s;
	for (int i = 0; i <br>
<br>

<hr>

<h3>
<span>B - Shower Line</span>
</h3>
<p>
<span>题目地址</span></p>
<p>
<span>题意</span>: <br>
5个学生排队,某一个排队方式的每一个情况下,第2i-1个人和第2个人会交谈。交谈时,第i和第j个人的交谈会产生g[i][j] + g[j][i]的欢乐(搞基)值,求中最大的欢乐值。</p>
<p>
<span>分析</span>: <br>
刚开始还以为人数没定,犹豫了一会... <br>
直接用next_permutation暴力,5!是可以接受的。</p>
<p>
<span>代码</span>:</p>

<pre class="brush:php;toolbar:false">/*
*  Author:      illuz <iilluzen>
*  File:        b.cpp
*  Create Date: 2014-05-21 23:43:23
*  Descripton:   
*/

#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;

const int N = 5;
char ch;
int g[N][N], mmax;
int a[5] = {0, 1, 2, 3, 4};

int main()
{
	int i = 0, j = 0;
	for (int i = 0; i <br>
<br>

<hr>

<h3>
<span>C - k-Tree</span>
</h3>
<p>
<span>题目地址</span></p>
<p>
<span>题意</span>: <br>
一颗无限的k-tree,定义如下: <br>
每个节点都有k个分支,第i个分支的边的权值为i。 <br>
问在k-tree中有多少条路径,里面至少有一条边权值不小于d,且路径边的和为n。</p>
<p>
<span>分析</span>: <br>
比赛时没敲出来(太弱orz),赛后发现有个地方错了... <br>
这题可以用dp,因为是无限的树,所以根节点下来和每个节点下来是一样的,但是转移为子问题还需要一个因素,就是条件限定边必须
具体看代码...</p>
<p>
<span>代码</span>:</p>

<pre class="brush:php;toolbar:false">/*
*  Author:      illuz <iilluzen>
*  File:        c.cpp
*  Create Date: 2014-05-22 00:20:28
*  Descripton:   
*/

#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
typedef long long ll;

const int N = 110;
const int MOD = 1e9 + 7;
ll D[N][2];
int n, d, k;

ll dp(int r, bool b)
{
	if (D[r][b] != -1)
		return D[r][b];
	if (r == 0)
		return D[r][b] = b;
	D[r][b] = 0;
	for (int i = 1; i = d)
			D[r][b] = (D[r][b] + dp(r - i, 1)) % MOD;
		else
			D[r][b] = (D[r][b] + dp(r - i, 0)) % MOD;
	return D[r][b];
}

int main()
{
	memset(D, -1, sizeof(D));
	scanf("%d%d%d", &n, &k, &d);
	cout <br>
<br>


</iostream></cstring></cstdio></iilluzen>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn