Codeforces Round #102 (Div. 2) 题解
A.
解一个方程。
还是厚颜无耻地暴力吧~
#include <iostream>
using namespace std; int r1, r2, c1, c2, d1, d2;
bool chk(int x1, int x2, int x3, int x4)
{
int ok = 1;
if(x1 == x2 || x1 == x3 || x1 == x4 || x2 == x3 || x2==x4 || x3==x4) ok = 0;
if(x1 + x2 != r1) ok = 0;
if(x3 + x4 != r2) ok = 0;
if(x1 + x3 != c1) ok = 0;
if(x2 + x4 != c2) ok = 0;
if(x1 + x4 != d1) ok = 0;
if(x2 + x3 != d2) ok = 0;
return ok;
} int main()
{
cin >> r1 >> r2 >> c1 >> c2 >> d1 >> d2;
for(int x1=1;x1<=9;x1++)for(int x2=1;x2<=9;x2++)
for(int x3=1;x3<=9;x3++)for(int x4=1;x4<=9;x4++) {
if(chk(x1, x2, x3, x4)) {
cout << x1 << " " << x2 << endl;
cout << x3 << " " << x4 << endl;
return 0;
}
}
cout << -1 << endl;
}
B.
可以练一练码力的题。
#include <iostream>
#include <cstring>
#include <vector>
using namespace std;
char s[202];int minu = 0, n, dot;
vector<char> v;
void rush() {
if(s[1] == '-') minu = 1;
else return; for(int i=1;i<=n-1;i++) {
s[i] = s[i+1];
}
n --; dot --;
}
int main()
{
scanf("%s", s+1);
n = strlen(s+1);
dot = n+1;
for(int i=1;i<=n;i++)
{
if(s[i] == '.') dot = i;
}
rush();
v.push_back(s[1]);
for(int i=2;i<=min(n, dot+2);i++) {
if((dot - i) % 3 == 0 && dot != i) {
v.push_back(',');
}
v.push_back(s[i]);
}
if(dot == n-1) v.push_back('0');
if(dot == n+1) v.push_back('.'), v.push_back('0'), v.push_back('0');
if(minu) printf("(");
printf("$");
for(int i=0;i<v.size();i++) {
printf("%c", v[i]);
}
if(minu) printf(")");
}
C. 给出X,求Y-X的最大值与最小值。
X = A * B * C [A,B,C皆为正整数]
Y = (A+1) * (B+2) * (C+2) [取名为①式]
题解:
我们可以用sqrt(X)的复杂度枚举A。
展开吧!①式!
然后就会发现。B, C越接近,Y越小。【根据基本不等式得到的】
然后开始枚举B的值。【枚举姿势:从sqrt(X/A)向1枚举B】
#include <cmath>
#include <iostream>
using namespace std;
typedef long long LL;
LL n, minc = 1e15, maxc = -1e15;
void solve(LL a) {
LL t = n / a;
maxc = max(maxc, (a+1)*(t+2)*(LL)3 - n);
LL tmp = (LL)sqrt(t) + 1;
for(LL b = tmp; b >= 1; b--) {
if(t % b == 0) {
minc = min(minc, (a+1)*(b+2)*(t/b+2) - n);
}
} }
int main()
{
cin >> n;
for(LL a = 1; a * a <= n; a ++) {
if(n % a == 0) {
solve(a);
solve(n/a);
}
}
cout << minc << " " << maxc << endl;
}
D.
很有趣的一题!
给一个n * m的棋盘。往上放棋子。
然后往上放棋子。如果一个骑士可以从A跳到B。那么A和B不能同时放棋子。
问最多可以放几个棋子。
思路:
先将棋盘按照国际象棋棋盘的方式染色。【就是黑白交错的那种啦!】
然后发现骑士从黑格子只能跳到白格子。从白格子只能跳到黑格子。
所以我们可以在所有黑格子上放棋子。于是可以放$\frac{(mn+1)}{2}$个棋子
不妨设m <= n
当m=1时,$ans = n$
当m=2时,
ans = n+1 (n为奇数)
ans = n+2 (n%4=2)
构造方法如下:
AABBAABBAA
AABBAABBAA
A表示放置棋子。B表示不放棋子
#include <iostream>
using namespace std;
int n, m; int main()
{
cin >> n >> m;
int ans = (m*n+1)/2;
if(n > m) swap(n, m);
if(n == 1) ans = m;
if(n == 2) {
if(m % 2 == 1) ans = m+1;
if(m % 4 == 2) ans = m+2;
}
cout << ans << endl;
}
Codeforces Round #102 (Div. 2) 题解的更多相关文章
- Codeforces Round #182 (Div. 1)题解【ABCD】
Codeforces Round #182 (Div. 1)题解 A题:Yaroslav and Sequence1 题意: 给你\(2*n+1\)个元素,你每次可以进行无数种操作,每次操作必须选择其 ...
- Codeforces Round #608 (Div. 2) 题解
目录 Codeforces Round #608 (Div. 2) 题解 前言 A. Suits 题意 做法 程序 B. Blocks 题意 做法 程序 C. Shawarma Tent 题意 做法 ...
- Codeforces Round #525 (Div. 2)题解
Codeforces Round #525 (Div. 2)题解 题解 CF1088A [Ehab and another construction problem] 依据题意枚举即可 # inclu ...
- Codeforces Round #528 (Div. 2)题解
Codeforces Round #528 (Div. 2)题解 A. Right-Left Cipher 很明显这道题按题意逆序解码即可 Code: # include <bits/stdc+ ...
- Codeforces Round #466 (Div. 2) 题解940A 940B 940C 940D 940E 940F
Codeforces Round #466 (Div. 2) 题解 A.Points on the line 题目大意: 给你一个数列,定义数列的权值为最大值减去最小值,问最少删除几个数,使得数列的权 ...
- Codeforces Round #677 (Div. 3) 题解
Codeforces Round #677 (Div. 3) 题解 A. Boring Apartments 题目 题解 简单签到题,直接数,小于这个数的\(+10\). 代码 #include &l ...
- Codeforces Round #665 (Div. 2) 题解
Codeforces Round #665 (Div. 2) 题解 写得有点晚了,估计都官方题解看完切掉了,没人看我的了qaq. 目录 Codeforces Round #665 (Div. 2) 题 ...
- Codeforces Round #160 (Div. 1) 题解【ABCD】
Codeforces Round #160 (Div. 1) A - Maxim and Discounts 题意 给你n个折扣,m个物品,每个折扣都可以使用无限次,每次你使用第i个折扣的时候,你必须 ...
- Codeforces Round #383 (Div. 2) 题解【ABCDE】
Codeforces Round #383 (Div. 2) A. Arpa's hard exam and Mehrdad's naive cheat 题意 求1378^n mod 10 题解 直接 ...
随机推荐
- Hibernate基础学习(五)—对象-关系映射(下)
一.单向n-1 单向n-1关联只需从n的一端可以访问1的一端. 域模型: 从Order到Customer的多对一单向关联.Order类中定义一个Customer属性,而在Customer类不用存放Or ...
- 关于阿里图标库Iconfont生成图标的三种使用方式(fontclass/unicode/symbol)
1.附阿里图标库链接:http://www.iconfont.cn/ 2.登录阿里图标库以后,搜索我们需要的图标,将其加入购物车,如图3.将我们需要的图标全部挑选完毕以后,点击购物车图标4.这时候右侧 ...
- 《Python自然语言处理》第二章 学习笔记
import nltk from nltk.book import * nltk.corpus.gutenberg.fileids() emma = nltk.corpus.gutenberg.wor ...
- node.js 中模块的循环调用问题详解
首先,我们看一下图示代码,每一个注释其实代表一个 js 文件.所以下面其实是三个 js 文件 .第一个是我们要运行的 main 文件,后面两个是 a, b 文件. 从上面可以看书 a ,b 两个模 ...
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(九)数据层优化-jdbc连接池简述、druid简介
日常啰嗦 终于回到既定轨道上了,这一篇讲讲数据库连接池的相关知识,线程池以后有机会再结合项目单独写篇文章(自己给自己挖坑,不知道什么时候能填上),从这一篇文章开始到本阶段结束的文章都会围绕数据库和da ...
- 【PAT_Basic日记】1002. 写出这个数
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { void print ...
- CF #365 703D. Mishka and Interesting sum
题目描述 D. Mishka and Interesting sum的意思就是给出一个数组,以及若干询问,每次询问某个区间[L, R]之间所有出现过偶数次的数字的异或和. 这个东西乍看很像是经典问题, ...
- 初窥GPFS文件系统
作者:姜江 linuxemacs@gmail.com 原文地址:http://blog.csdn.net/jznsmail/article/details/5502840?reload 本作品采用知识 ...
- MYSQL不能从远程连接的解决方法
为了在其它电脑上能用root用户登录,需进行以下动作: 首先在mysql服务器端打开mysql 1. mark>mysql -u root -p //输入密码,进入MySQL服务器 2.mysq ...
- apache配置多个站点
序:这次项目主要是为了给微信客户端添加一个地址,在微信公众号里面添加一个可以访问的app下载页面,说起来很简单,但总不能为了这么小的一个网站新建一个web服务器吧! 现在开始配置,首先必须确认已经在L ...