Codeforces Round #313 (Div. 1)

官方英文题解:http://codeforces.com/blog/entry/19237

Problem A:

题目大意:

给出内角和均为120°的六边形的六条边长(均为正整数),求最多能划分成多少个边长为1的正三角形。

题解:

把六边形补全变成一个正三角形,然后减去三个角的正三角形即可。

Problem B:

题目大意:

给出长度相等的两个串AB,定义两个串相等 当且仅当  A=B  或者  当长度为偶数时,A[1...n/2]=B[1...n/2]  && A[n/2+1...n]=B[n/2+1...n]  或者

当长度为偶数时,A[1...n/2]=B[n/2+1...n]  && A[n/2+1...n]=B[1...n/2]

题解:

1.比赛的时候我想都没想直接根据定义来判断。 复杂度我感觉和快排差不多。。 结果被hack了。  赛后想想其实复杂度还是高了。。 F(n)=4*F(n/2)+O(n). F(n)=O(n2)

由于后面两个条件需要长度为偶数,所以随机数据很容易就过了。。 下面这组数据可以把暴力卡掉。想卡别人还真是不容易。。

ba * 32768

ab * 32768

2.正解:题目中”相等“的定义是具有传递性的。所以可以分别求出和AB”相等“的且字典序最小的字符串,然后判断是否相等。

String smallest(String s) {
    if (s.length() % 2 == 1) return s;
    String s1 = smallest(s.substring(0, s.length()/2));
    String s2 = smallest(s.substring(s.length()/2), s.length());
    if (s1 < s2) return s1 + s2;
    else return s2 + s1;
}


Problem C:

题目大意:

给出N*M的棋盘和K个黑色格子的坐标,求从左上角到右下角不经过黑色格子的方案数。 每次只能向右或者向下1格。 K<=3000 N,M<=100000.

题解:

1.这题以前做到过...所以很快就回忆起来了。。可以总方案减去不合法的方案。F[i]表示从左上角不经过黑色格子到第i个黑色格子的方案数。把黑色格子排序,然后

F[i]=左上角到i的方案数-F[j]*(j到i的方案数).   第j个格子在第i个格子左上方。  然后Ans=总方案-F[i]*(i到右下角的方案数)。

2.从(x1,y1)到(x2,y2)的方案数是C(x2-x1+y2-y1,x2-x1).  预处理逆元搞一搞就好了。



Codeforces Round #313 (Div. 1)

时间: 2024-08-25 22:12:22

Codeforces Round #313 (Div. 1)的相关文章

Codeforces Round #313 (Div. 2) Gerald&#39;s Hexagon

给出一个六边形六条边的长度(六边形的每个角为120度),求出这个六边形中边长为1的等边三角形有多少个 由于每个角都是120度并且上下两条边是平行的,因此我们可以补出一个矩形,再减掉周边四个角的面积,用剩下面积除以每个小三角形的面积. #include<cstdio> using namespace std; double a,b,c,d,e,f; int main() { <span style="white-space:pre"> </span>s

Codeforces Round #313 (Div. 2) C Gerald&#39;s Hexagon 计数

// Codeforces Round #313 (Div. 2) C Gerald's Hexagon // 计数 // 关键是平行于a1的长度为1的有多少条,中间的这些*2,再加上a1 // 和a4,就是三角形的总和 // 还是挺简单的,注意递增的初始值,和变化,就ac了 #include <cstdio> #include <algorithm> #include <iostream> #include <cstring> using namespac

【打CF,学算法——一星级】Codeforces Round #313 (Div. 2) A. Currency System in Geraldion

[CF简单介绍] 提交链接:http://codeforces.com/contest/560/problem/A 题面: A. Currency System in Geraldion time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output A magic island Geraldion, where Gerald lives,

Codeforces Round #313 (Div. 2) (ABCD题解)

比赛链接:http://codeforces.com/contest/560 水笔场... A. Currency System in Geraldion time limit per test:2 seconds memory limit per test:256 megabytes A magic island Geraldion, where Gerald lives, has its own currency system. It uses banknotes of several va

Codeforces Round #313 (Div. 2)B.B. Gerald is into Art

B. Gerald is into Art Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/problemset/problem/560/B Description Gerald bought two very rare paintings at the Sotheby's auction and he now wants to hang them on the wall. For that he bought

【打CF,学算法——二星级】Codeforces Round #313 (Div. 2) B. Gerald is into Art(水题)

[CF简单介绍] 提交链接:http://codeforces.com/contest/560/problem/B 题面: B. Gerald is into Art time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Gerald bought two very rare paintings at the Sotheby's a

Codeforces Round #313 (Div. 2) C. Geralds Hexagon(补大三角.cpp

 Description Gerald got a very curious hexagon for his birthday. The boy found out that all the angles of the hexagon are equal to . Then he measured the length of its sides, and found that each of them is equal to an integer number of centimeters.

Codeforces Round #313 (Div. 2) C. Geralds Hexagon

Description Gerald got a very curious hexagon for his birthday. The boy found out that all the angles of the hexagon are equal to . Then he measured the length of its sides, and found that each of them is equal to an integer number of centimeters. Th

Codeforces Round #313 (Div. 1) C. Gerald and Giant Chess

这场CF又掉分了... 这题题意大概就给一个h*w的棋盘,中间有一些黑格子不能走,问只能向右或者向下走的情况下,从左上到右下有多少种方案. 开个sum数组,sum[i]表示走到第i个黑点但是不经过其他黑点的方案数. 式子是sum[i]=c(x[i]+y[i],x[i])-Σ(sum[j]*c(x[i]-x[j]+y[i]-y[j],x[i]-x[j])). c(x+y,x)表示从格子(1,1)到(x,y)的方案数(没有黑点). 因此每个点按x[i]+y[i]的值排个序,然后n^2弄一下他们的拓扑