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. 微信支付开发(1) JS API支付V3版(转)

    http://www.cnblogs.com/txw1958/p/wxpayv3-jsapi.html 本文介绍微信支付下的jsapi实现流程 前言 微信支付现在分为v2版和v3版,2014年9月10 ...

  2. PHP中array_merge和array相加的区别分析

    今天处理一个这样的问题:如何获取字符键名相同值不同的两个数组值集合,用array_merge和数组相加都不可行,让我认真比较了下PHP中array_merge和array相加的区别 首先来看看键名是s ...

  3. PHP中比较两个时间的大小与日期的差值

    在这里我们全用到时间戳 mktime(hour,minute,second,month,day,year,[is_dst])     其参数可以从右向左省略,任何省略的参数都会被设置成本地日期和时间的 ...

  4. 【翻译十五】-java并发之固定对象与实例

    Immutable Objects An object is considered immutable if its state cannot change after it is construct ...

  5. 【JAVA 文件概述】

    一.概述 使用此类的原因: 该类将文件或者文件夹封装成对象.方便对文件与文件夹的属性信息进行操作.File对象作为参数传递给流的构造函数.要求:使用File类的常用方法. windows平台下,目录分 ...

  6. [LeetCode] Largest Rectangle in Histogram

    Given n non-negative integers representing the histogram's bar height where the width of each bar is ...

  7. HDU5556 Land of Farms(二分图 2015 合肥区域赛)

    容易想到将问题转化为求图的独立数问题 ,但求一般图的独立集是一个NPC问题,需要一些转化. 状态压缩,枚举每个上古农场是否选择,然后将剩下的新农场根据i + j奇偶性分为x , y集. 结果为 max ...

  8. golang level

    exp = (currentLevel-1) * 501 02 503 1004 150startLevel = 1currentLevel = 2currentExp = 0

  9. socket编程学习

    socket: 也称作套接字,应用程序通常通过套接字向网络发出请求或者应答网络请求. 常用的套接字API函数: 1.socket(): 函数原型为:int socket(int domain, int ...

  10. 【SSM】拦截器的原理、实现

    一.背景: 走过了双11,我们又迎来了黑色星期五,刚过了黑五,双12又将到来.不管剁手的没有剁手的,估计这次都要剁手了!虽然作为程序猿的我,没有钱但是我们长眼睛了,我们关注到的是我们天猫.淘宝.支付宝 ...