Codeforces Round #347 (Div. 2)
unrating的一场CF
#include <bits/stdc++.h> const int N = 1e5 + 5;
char a[105], b[105]; bool equal() {
int lena = strlen (a);
int lenb = strlen (b);
if (lena != lenb) {
return false;
}
for (int i=0; i<lena; ++i) {
if (a[i] != b[i]) {
return false;
}
}
return true;
} int main() {
scanf ("%s%s", a, b);
if (equal ()) {
printf ("%s\n", a);
} else {
puts ("1");
} return 0;
}
贪心 B - Rebus
取最小最大,从最大调到n
#include <bits/stdc++.h> const int N = 1e3 + 5;
char str[N];
int n, x, y; int main() {
gets (str);
int len = strlen (str);
x = 1; y = 0;
for (int i=0; i<len; ++i) {
if (str[i] == '+') {
x++;
} else if (str[i] == '-') {
y++;
} else if (str[i] >= '0' && str[i] <= '9') {
n = n * 10 + (str[i] - '0');
}
}
int mx = x * n - y;
int mn = x - n * y;
if (n > mx || n < mn) {
puts ("Impossible");
} else {
int f = 0, sp = 0;
int xx = 0, yy = 0, now = mx;
while (now > n) {
if (now - n + 1 > n) {
now -= (n - 1);
if (xx < x) {
xx++;
} else {
yy++;
}
} else {
int d = now - n;
if (xx < x) {
f = -1;
sp = n - d;
} else {
f = 1;
sp = 1 + d;
}
break;
}
}
puts ("Possible");
for (int i=0; i<len; ++i) {
if (str[i] == '?') {
if (i == 0) {
if (f == -1) {
printf ("%d", sp);
f = 0;
} else if (xx > 0) {
printf ("1");
xx--;
} else {
printf ("%d", n);
}
} else {
if (str[i - 2] == '+') {
if (f == -1) {
printf ("%d", sp);
f = 0;
} else if (xx > 0) {
printf ("1");
xx--;
} else {
printf ("%d", n);
}
} else {
if (f == 1) {
printf ("%d", sp);
f = 0;
} else if (yy > 0) {
printf ("%d", n);
yy--;
} else {
printf ("1");
}
}
}
} else {
printf ("%c", str[i]);
}
}
puts ("");
} return 0;
}
头晕,看不懂题意
Consider the abbreviations that are given to the first Olympiads. The first 10 Olympiads (from year 1989 to year 1998) receive one-digit abbreviations (IAO'9, IAO'0, ..., IAO'8). The next 100 Olympiads (1999 - 2098) obtain two-digit abbreviations, because all one-digit abbreviations are already taken, but the last two digits of 100 consecutive integers are pairwise different. Similarly, the next 1000Olympiads get three-digit abbreviations and so on.
Now examine the inversed problem (extract the year from an abbreviation). Let the abbreviation have k digits, then we know that all Olympiads with abbreviations of lengths (k - 1), (k - 2), ..., 1 have passed before this one. The number of such Olympiads is10k - 1 + 10k - 2 + ... + 101 = F and the current Olympiad was one of the 10k of the following. Therefore this Olympiad was held in years between (1989 + F) and (1989 + F + 10k - 1). As this segment consists of exactly 10k consecutive natural numbers, it contains a single number with a k-digit suffix that matches the current abbreviation. It is also the corresponding year.
#include <bits/stdc++.h>
char str[20];
int main() {
int n; scanf ("%d", &n);
for (int i=0; i<n; ++i) {
scanf ("%s", str);
int len = strlen (str + 4);
int year = atoi (str + 4);
int add = 0, tenpow = 10;
for (int j=1; j<len; ++j) {
add += tenpow;
tenpow *= 10;
}
while (year < 1989 + add) {
year += tenpow;
}
printf ("%d\n", year);
}
return 0;
}
Codeforces Round #347 (Div. 2)的更多相关文章
- Codeforces Round #347 (Div. 2) C. International Olympiad 找规律
题目链接: http://codeforces.com/contest/664/problem/C 题解: 这题最关键的规律在于一位的有1989-1998(9-8),两位的有1999-2098(99- ...
- Codeforces Round #347 (Div. 2) B. Rebus
题目链接: http://codeforces.com/contest/664/problem/B 题意: 给你一个等式,把等式左边的问号用1到n(n为等式右边的数)的数填好,使得等式成立 题解: 贪 ...
- Codeforces Round #347 (Div.2)_B. Rebus
题目链接:http://codeforces.com/contest/664/problem/B B. Rebus time limit per test 1 second memory limit ...
- Codeforces Round #347 (Div.2)_A. Complicated GCD
题目链接:http://codeforces.com/contest/664/problem/A A. Complicated GCD time limit per test 1 second mem ...
- Codeforces Round #347 (Div. 2) (练习)
A: 题意:找到[a, b]的最大公约数: 思路:相同时为本身,不同时为1. 套路:碰到水题别想太多: 猜想:两个相邻数,必有一奇一偶,如果偶数有因子3或者其他,奇数可不可能有相同的呢? 枚举一些数后 ...
- codeforces Round #347 (Div. 2) C - International Olympiad
思路:从后往前一位一位的模拟,每次判断一下当前枚举的数是否之间枚举过了.或者当前枚举数过小,小于1989. #include<cstdio> #include<cstring> ...
- Codeforces Round #347 (Div. 2) A
Description Greatest common divisor GCD(a, b) of two positive integers a and b is equal to the bigge ...
- Codeforces Round #366 (Div. 2) ABC
Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...
- Codeforces Round #354 (Div. 2) ABCD
Codeforces Round #354 (Div. 2) Problems # Name A Nicholas and Permutation standard input/out ...
随机推荐
- php面向对象:封装
OOP三大特性:封装.继承.多态. 封装的目的:为了让类更安全封装的做法:1.类里面的成员变量做为private2.使用成员方法来间接访问成员变量3.在该方法里面加限制条件 注意:php类里面不允许出 ...
- [Android Pro] Fragment中使用SurfaceView切换时闪一下黑屏的解决办法
方法一.在Activity的onCreate中添加如下代码 getWindow().setFormat(PixelFormat.TRANSLUCENT); reference to : http:/ ...
- java1.8中Lambda表达式reduce聚合测试例子
public class LambdaTest { public static void main(String[] args) { // 相当于foreach遍历操作结果值 Integer out ...
- iOS 简单提示view
+(void)showMessage:(NSString *)message{ UIWindow * window = [UIApplication sharedApplication].key ...
- valgrind检查C++内存泄漏
valgrind --tool=memcheck --leak-check=full ./httptest Valgrind 使用 用法: valgrind [options] prog-and-ar ...
- OkHttp学习总结
This paper mainly includes the following contents okhttp ordinary operation. okhttp interceptors. Re ...
- MVC - 10.CodeFrist
微软示例 1.(对新数据库使用 Code First):http://msdn.microsoft.com/zh-cn/data/jj193542 2.(连接和模型):http://msdn.micr ...
- C#关键字ref和out
using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Di ...
- C语言中do...while(0)的妙用
在linux内核代码中,经常看到do...while(0)的宏,do...while(0)有很多作用,下面举出几个: 1.避免goto语句: 通常,如果一个函数开始要分配一些资源,然后如果在中途遇到错 ...
- Linux Shell 高级编程技巧2----shell工具
2.shell工具 2.1.日志文件 简介 创建日志文件是很重要的,记录了重要的信息.一旦出现错误,这些信息对于我们排错是非常有用的:监控的信息也可以记录到日 ...