A题,水题。

B题也是水题,弄的比较麻烦,前几天队内赛见过,水题怎么水都能过。

C题

题意:给出正n边形上的三个点,求最小的正n边形的面积。

以前貌似见过此题。思路也没什么进展,就是枚举n,通过旋转a,判断b c是否在多边形上。感觉是水过的,改了改eps就过了,看别人代码,还有神奇的gcd的做法。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
int s[];
int que[];
void judge(int x)
{
int num,n,i;
for(i = ;i <= ;i ++)
{
if(s[i] >= x)
break;
x -= s[i];
}
memset(que,,sizeof(que));
n = i;
num = ;
x--;
while(x)
{
que[num++] = x%;
x /= ;
}
for(i = n-;i >= ;i --)
{
printf("%c",que[i]+'A');
}
return ;
}
void fun1(char *str)
{
int a,b,i;
a = b = ;
int len;
len = strlen(str);
for(i = ;i < len;i ++)
{
if(str[i] == 'C') break;
a = a* + (str[i]-'');
}
for(i = i+;i < len;i ++)
b = b* + (str[i]-'');
judge(b);
printf("%d\n",a);
}
void fun2(char *str)
{
int a = ,i,j;
int len;
len = strlen(str);
for(i = ;i < len;i ++)
{
if(str[i] <= ''&&str[i] >= '')
break;
}
int num = ;
for(j = i-;j >= ;j --)
a += s[num++]*(str[j] - 'A' + );
printf("R");
for(;i < len;i ++)
printf("%c",str[i]);
printf("C%d\n",a);
}
int main()
{
int t,len,i;
char str[];
scanf("%d",&t);
s[] = ;
for(i = ;i <= ;i ++)
s[i] = s[i-]*;
while(t--)
{
scanf("%s",str);
len = strlen(str);
if(str[] == 'R')
{
int flag = ,z = ;
for(i = ;i < len;i ++)
{
if(str[i] == 'C'&&i >= )
flag ++;
else if(str[i] <= 'Z'&&str[i] >= 'A')
z = ;
}
if(flag == &&z == )
fun1(str);
else
fun2(str);
}
else
fun2(str);
}
return ;
}
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <vector>
#include <queue>
#include <cmath>
#include <algorithm>
using namespace std;
#define PI 3.1415926
#define eps 1e-3
struct point
{
double x,y;
};
struct line
{
point a,b;
}; point intersection(line u,line v)
{
point ret = u.a;
double t = ((u.a.x-v.a.x)*(v.a.y-v.b.y) - (u.a.y-v.a.y)*(v.a.x-v.b.x))
/((u.a.x-u.b.x)*(v.a.y-v.b.y)-(u.a.y-u.b.y)*(v.a.x-v.b.x));
ret.x += (u.b.x-u.a.x)*t;
ret.y += (u.b.y-u.a.y)*t;
return ret;
}
point circumcenter(point a,point b,point c)
{
line u,v;
u.a.x = (a.x+b.x)/;
u.a.y = (a.y+b.y)/;
u.b.x = u.a.x-a.y+b.y;
u.b.y = u.a.y+a.x-b.x;
v.a.x = (a.x + c.x)/;
v.a.y = (a.y + c.y)/;
v.b.x = v.a.x - a.y + c.y;
v.b.y = v.a.y + a.x - c.x;
return intersection(u,v);
}
point Rotate(point p,double angle)
{
point res;
res.x = p.x * cos(angle) - p.y*sin(angle);
res.y = p.x * sin(angle) + p.y*cos(angle);
return res;
}
int judge(point a,point b)
{
double t;
t = a.x - b.x;
if(t < )
t = -t;
if(t > eps) return ;
t = a.y - b.y;
if(t < )
t = -t;
if(t > eps) return ;
return ;
}
int main()
{
int i,j,n;
point a,b,c,r,d;
point p[];
scanf("%lf%lf",&a.x,&a.y);
scanf("%lf%lf",&b.x,&b.y);
scanf("%lf%lf",&c.x,&c.y);
r = circumcenter(a,b,c);
d.x = a.x - r.x;
d.y = a.y - r.y;
for(i = ;i <= ;i ++)
{
int num = ;
p[] = a;
for(j = ;j < i;j ++)
{
p[j] = Rotate(d,*PI*j/i);
p[j].x += r.x;
p[j].y += r.y;
if(judge(p[j],b))
num ++;
if(judge(p[j],c))
num ++;
}
if(num == ) break;
}
n = i;
double s1,s2;
s1 = s2 = ;
for(i = ;i < n;i ++)
{
s1 += p[(i+)%n].y*p[i].x;
s2 += p[(i+)%n].y*p[(i+)%n].x;
}
printf("%.7lf",fabs(s1-s2)/);
return ;
}

Codeforces Beta Round #1的更多相关文章

  1. Codeforces Beta Round #80 (Div. 2 Only)【ABCD】

    Codeforces Beta Round #80 (Div. 2 Only) A Blackjack1 题意 一共52张扑克,A代表1或者11,2-10表示自己的数字,其他都表示10 现在你已经有一 ...

  2. Codeforces Beta Round #62 题解【ABCD】

    Codeforces Beta Round #62 A Irrational problem 题意 f(x) = x mod p1 mod p2 mod p3 mod p4 问你[a,b]中有多少个数 ...

  3. Codeforces Beta Round #83 (Div. 1 Only)题解【ABCD】

    Codeforces Beta Round #83 (Div. 1 Only) A. Dorm Water Supply 题意 给你一个n点m边的图,保证每个点的入度和出度最多为1 如果这个点入度为0 ...

  4. Codeforces Beta Round #13 C. Sequence (DP)

    题目大意 给一个数列,长度不超过 5000,每次可以将其中的一个数加 1 或者减 1,问,最少需要多少次操作,才能使得这个数列单调不降 数列中每个数为 -109-109 中的一个数 做法分析 先这样考 ...

  5. Codeforces Beta Round #79 (Div. 2 Only)

    Codeforces Beta Round #79 (Div. 2 Only) http://codeforces.com/contest/102 A #include<bits/stdc++. ...

  6. Codeforces Beta Round #77 (Div. 2 Only)

    Codeforces Beta Round #77 (Div. 2 Only) http://codeforces.com/contest/96 A #include<bits/stdc++.h ...

  7. Codeforces Beta Round #76 (Div. 2 Only)

    Codeforces Beta Round #76 (Div. 2 Only) http://codeforces.com/contest/94 A #include<bits/stdc++.h ...

  8. Codeforces Beta Round #75 (Div. 2 Only)

    Codeforces Beta Round #75 (Div. 2 Only) http://codeforces.com/contest/92 A #include<iostream> ...

  9. Codeforces Beta Round #74 (Div. 2 Only)

    Codeforces Beta Round #74 (Div. 2 Only) http://codeforces.com/contest/90 A #include<iostream> ...

  10. Codeforces Beta Round #73 (Div. 2 Only)

    Codeforces Beta Round #73 (Div. 2 Only) http://codeforces.com/contest/88 A 模拟 #include<bits/stdc+ ...

随机推荐

  1. git 常用的简单命令

    git add . 会把当前目录中所有有改动的文件(不包括.gitignore中要忽略的文件)都添加到git缓冲区以待提交 git add * 会把当前目录中所有有改动的文件(包括.gitignore ...

  2. .NET NLog 详解(五) - Condition Expression

    Sample <!-- during normal execution only log Info messages --> <defaultFilter>level > ...

  3. go-martini 简单分析之一

    env.go 环境变量 const ( Dev string = "development" Prod string = "production" Test s ...

  4. PMP 第二章 项目生命周期与组织

    1 项目组织机构类型有哪些? 区别是什么? 职能型  矩阵型  项目性 2 什么是事业环境因素? 什么是组织过程资产? 如何区分事业环境因素和组织过程资产? 事业环境因素:事业环境因素指围绕项目或能影 ...

  5. easyui tree折叠

    标签 <div id="buildDiv" data-options="region:'center'" title="楼栋权限" s ...

  6. xUtils,butterknife...处理findviewbyid

      在写android中,经常要出现大量的findviewbyid et_path = (EditText) findViewById(R.id.et_path); tv_info = (TextVi ...

  7. phpstorm的安装、破解、和汉化

    1.去官网下载最新版安装. 2.完成选择购买软件,下面选择中间那个账户方法License server,把这条链接复制下去:http://idea.qinxi1992.cn 3.下载汉化包resour ...

  8. 简单的c#插件框架

    插件式架构,一种全新的.开放性的.高扩展性的架构体系.插件式架构设计近年来非常流行,基于插件的设计好处很多,把扩展功能从框架中剥离出来,降低了框架的复杂度,让框架更容易实现.扩展功能与框架以一种很松的 ...

  9. CSS3详解:background

    CSS3对于background做了一些修改,最明显的一个就是采用设置多背景,不但添加了4个新属性,并且还对目前的属性进行了调整增强. 1.多个背景图片 在css3里面,你可以再一个标签元素里应用多个 ...

  10. CSS3属性

    1.边框阴影(box-shadow ): 投影方式,X轴偏移,Y轴偏移,阴影模糊半径,阴影扩展半径,颜色 2.边框图像(border-image) 3.边框圆角:border-radius:5px 4 ...