unrating的一场CF

A - Complicated GCD

#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;
}

贪心 C - International Olympiad

头晕,看不懂题意

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

  1. Codeforces Round #347 (Div. 2) C. International Olympiad 找规律

    题目链接: http://codeforces.com/contest/664/problem/C 题解: 这题最关键的规律在于一位的有1989-1998(9-8),两位的有1999-2098(99- ...

  2. Codeforces Round #347 (Div. 2) B. Rebus

    题目链接: http://codeforces.com/contest/664/problem/B 题意: 给你一个等式,把等式左边的问号用1到n(n为等式右边的数)的数填好,使得等式成立 题解: 贪 ...

  3. Codeforces Round #347 (Div.2)_B. Rebus

    题目链接:http://codeforces.com/contest/664/problem/B B. Rebus time limit per test 1 second memory limit ...

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

  5. Codeforces Round #347 (Div. 2) (练习)

    A: 题意:找到[a, b]的最大公约数: 思路:相同时为本身,不同时为1. 套路:碰到水题别想太多: 猜想:两个相邻数,必有一奇一偶,如果偶数有因子3或者其他,奇数可不可能有相同的呢? 枚举一些数后 ...

  6. codeforces Round #347 (Div. 2) C - International Olympiad

    思路:从后往前一位一位的模拟,每次判断一下当前枚举的数是否之间枚举过了.或者当前枚举数过小,小于1989. #include<cstdio> #include<cstring> ...

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

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

  9. Codeforces Round #354 (Div. 2) ABCD

    Codeforces Round #354 (Div. 2) Problems     # Name     A Nicholas and Permutation standard input/out ...

随机推荐

  1. October 11th 2016 Week 42nd Tuesday

    A friend is one who knows you and loves you just the same. 朋友就是懂你并爱你的人. Leave nothing for tomorrow w ...

  2. 解的个数(codevs 1213)

    题目描述 Description 已知整数x,y满足如下面的条件: ax+by+c = 0 p<=x<=q r<=y<=s 求满足这些条件的x,y的个数. 输入描述 Input ...

  3. Linux系统下设置Tomcat自启动

    需要将tomcat加入自启动队列中,则需要进行如下的操作: 以root用户登录系统: cd /etc/rc.d/init.d/ vi tomcat 文件内容参考如下: #!/bin/sh # # to ...

  4. UVA 10252

    按照字典序输出最长公共子序列 #include<time.h> #include <cstdio> #include <iostream> #include< ...

  5. 将前台json对象传入java后台

    前台json格式的数据如何传入后台 1. 将要传入后台的数据组装成JSON格式的字符串: var jsonStr = [{'name':'jim' , 'age':20} , {'name':'kin ...

  6. 查看局域网内在线的主机ip和mac地址

    ]# nmap -sP Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-12 22:43 CST Nmap scan report for 192. ...

  7. DHCP的若干原理解释

    转自:http://blog.chinaunix.net/uid-22287947-id-1775641.html 搜罗了几种关于dhcp的原理和过程解释 DHCP(Dynamic Host Conf ...

  8. OS X thrift setup

    OS X Setup The following command install all the required tools and libraries to build and install t ...

  9. go sample-base64

    GoSample-base64 package mainimport ( "encoding/base64" "fmt")func base64Encode(s ...

  10. A Study of WebRTC Security

    转自:http://webrtc-security.github.io/ A Study of WebRTC Security Abstract Web Real-Time Communication ...