康复式训练

  按理说暑假就应该开始的,一直拖到现在。期间高中巨佬已经区域赛rank4,而我还在跟着队友混铜牌。现在比赛也结束了,队也没了,要开始复健了啊。。。

  准备顺着刷刷cf,hdu啥的,顺便学下英语

  再就是接了一口大锅,可能每周会更个模板?(以前写的讲解都好水啊

  ps.昨天看空间,高三楼已经没了。noi打完就成csp,高中毕业学校就被拆,就好像有什么东西追赶着,要把你的过去全删掉。就好像经历的一切都是假的

    突然想到WC的时候唱的歌,命运如锁扣,路只剩我独自走......

    (日常夜来非)

 

2019.11.8

  复习了一下左偏树

 

2019.11.12

  codeforces1B Spreadsheets

  对每个格子有两种编号方式,要求互相转换

  总是会觉得以前写的代码比较好,看来还是落下了很多,要更加努力啊.

#include <bits/stdc++.h>
using namespace std;

int n, r, c, i;
char s[1000005];

void print(int x)
{
    if(!x) return;
    print((x - 1) / 26);
    printf("%c", (x - 1) % 26 + 'A');
}

int main()
{
    cin >> n;
    while(n--)
    {
        scanf("%s", s);
        if(sscanf(s, "R%dC%d", &r, &c) == 2)//sscanf():从一个字符串中读进与指定格式相符的数据
        {
            print(c); cout << r << endl;
        }
        else
        {
            r = c = i = 0;
            for(; s[i] >= 'A' && s[i] <= 'Z'; i++) c = c * 26 + s[i] - 'A' + 1;
            for(; s[i]; i++) r = r * 10 + s[i] - '0';
            cout << "R" << r << "C" << c << endl;
        }
    }
}
codefores1B

 

  codeforces1C Ancient Berland Circus

  给定正多边形三个顶点的坐标,求边数最少时的面积

  先求出三个圆心角,2π/gcd即为最少边数

  一开始直接求坐标,被精度卡到死,后来换成用余弦也很卡了一下才过。还是得先想好再打啊,浪费了蛮多时间的

#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-4;
const double pi = 3.141592653589793;

int num; double n, ans_ang, r;
double x[3], y[3], l[3], ang[3]; 

double len(double x1, double y1, double x2, double y2)
{
    return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
}

double angle(double a, double b, double c)
{
    return 2.0 * acos((a * a + b * b - c * c) / (2 * a * b)); 
}

double s()
{
    double p = (l[0] + l[1] + l[2]) / 2.0;
    return sqrt(p * (p - l[0]) * (p - l[1]) * (p - l[2]));
}

double fgcd(double a, double b)
{
    if(b <= eps) return a;
    return fgcd(b, fmod(a, b));//double fmod(double a, double b)返回a/b的余 
}

int main()
{
    for(int i = 0; i < 3; i++) cin >> x[i] >> y[i];
    for(int i = 0; i < 3; i++)
        for(int j = i + 1; j < 3; j++) l[num++] = len(x[i], y[i], x[j], y[j]);
    ang[0] = angle(l[0], l[1], l[2]);
    ang[1] = angle(l[1], l[2], l[0]);
    ang[2] = angle(l[0], l[2], l[1]);
    r = l[0] * l[1] * l[2] / (4 * s());
    ans_ang = fgcd(ang[0], ang[1]);
    ans_ang = fgcd(ans_ang, ang[2]);
    n = 2 * pi / ans_ang;
    printf("%.12lf", n * r * r * sin(ans_ang) / 2.0); 
    return 0;
}
codefores1C

 

2019.11.14

  hdu1003Max Sum

  不知道为什么,各种PE各种WA,然后感觉也没改啥,就过了。。。烦

 

2019.11.16

  打了一波武理的新生赛,感觉全程就像个憨憨,各种sb操作,最后喜获罚时第一

 

  题解写一半oj崩了。。。不想写了

 

2019.11.19

  https://www.cnblogs.com/XYZinc/p/11897028.html

 

2019.11.20

  codeforces2A Winner

  给出n次加减分,输出最先达到最大值的人

  总是把问题想复杂,本来很简单一道题,就是非得打几遍才过,我怕是个废人了

#include <bits/stdc++.h>
using namespace std;
const int N = 1005;

string name[N];
int score[N], mx; 
map<string, int> st, chk;

int main()
{
    int n; cin >> n;
    for(int i = 1; i <= n; i++)
    {
        cin >> name[i] >> score[i];
        st[name[i]] += score[i];
    }
    for(int i = 1; i <= n; i++)
        if(st[name[i]] > mx) mx = st[name[i]];
    for(int i = 1; i <= n; i++)
    {
        chk[name[i]] += score[i];
        if(st[name[i]] == mx && chk[name[i]] >= mx)
            {
                cout << name[i]; return 0;
            }
    }
    return 0;
}
codefores2A

 

posted @ 2019-11-07 20:19  XYZinc  阅读(222)  评论(0编辑  收藏  举报