题意:有n(n<=50)个圆,给出每个圆的圆心坐标和半径r(r>=2)。

求两个函数f(t),g(t),t的取值为0到50的整数,每次令x=f(t),y=g(t),产生一个51个点的集合。要求这个点集对于每个圆至少有一个点落在圆内或圆周上。

g和f中只能使用常数,加法,乘法,减法,绝对值运算。

输出f和g。

分析:我们设计这样一个多项式,包含n项,当t取值为i的时候,只有第i项的值不为0。其余项均为0。

设计方案是每项都乘以这样一个系数,第i项需要乘以系数1/2×( 1-abs(t-i) + abs( 1 - abs(t-i) ) )。

当只有当i==t的时候该系数才不为0。

原理如下:如果我们设A=1-abs(t-i)的话,那么系数就是(A+abs(A))/2。

当i=1时,A和abs(A)关于未知数t的图像如下图所示。两者相加只有中间的重叠部分不会抵消。

这样我们就让f(t)=sigma(xi/2×( 1-abs(t-i) + abs( 1 - abs(t-i) ) )),由于圆的半径至少为2,所以xi/2取整带来的误差不会产生影响。

g(t)同理。

#include <cstdio>
#include <string>
#include <iostream>
using namespace std; int n; string make(int i, int a)
{
char st[];
sprintf(st, "%d", i);
string num = string(st);
string ret = "((1-abs((t-" + num + ")))+abs((1-abs((t-" + num + ")))))";
sprintf(st, "%d", a/);
num = string(st);
return "(" + num + "*" + ret + ")";
} int main()
{
scanf("%d", &n);
string f = string("");
string g = string("");
for (int i = ; i < n; i++)
{
int x, y, r;
scanf("%d%d%d", &x, &y, &r);
f = "(" + f + "+" + make(i, x) + ")";
g = "(" + g + "+" + make(i, y) + ")"; }
cout << f << endl;
cout << g << endl;
return ;
}

cf593c的更多相关文章

  1. CF593C Beautiful Function 构造

    正解:构造 解题报告: 传送门! 我知道我咕了好几篇博客似乎,,,但我不听!我就是要发新博客QAQ!(理不直气也壮 这题,想明白了还是比较简单的QwQ实现起来似乎也没有很复杂QAQ 首先思考一下,显然 ...

随机推荐

  1. django authenticate

    程序少不了验证用户与权限分配.通过 Django 自带以及我们一些扩展就能够满足验证与权限的需求. 我在使用 Django 遇到的"login(request, user) 之后,再重定向这 ...

  2. 【.NET实战教程】北风网基于ASP.NET多层架构下的企业级进销存软件全程培训

    .Net进销存系统详细课程大纲(开发工具采用VS2008+sqlsever2005) [小编提醒:现在学习的话,可以使用vs2012+sql 2008 学习的是思路,教学环境不一定要一模一样]1.项目 ...

  3. php 异常处理类

    PHP具有很多异常处理类,其中Exception是所有异常处理的基类. Exception具有几个基本属性与方法,其中包括了: message 异常消息内容code 异常代码file 抛出异常的文件名 ...

  4. Android开发的菜鸟小记

    1.主线程异常:添加网络连接: 2.权限异常: 3.空指针异常:NullException: 添加网络权限: DEBUG:Connected to the target VM, address: 'l ...

  5. linux终端常用快捷键

    Ctrl + d       删除一个字符,相当于通常的Delete键(命令行若无任何字符,则相当于exit:处理多行标准输入时也表示EOF ) Ctrl + h       退格删除一个字符,相当于 ...

  6. Git 本地项目上传至托管平台(OsChina/GitHub)

    为了方便自己的代码管理,通常是把自己的写的一些小项目分享到GitHub 或者git.oschina上面! 区别: GitHub 只能创建公开的项目,国外的,速度慢! git.oschina 开源中国的 ...

  7. offsetHeight, clientHeight与scrollHeight的区别

      在网上搜了一下,结论非常笼统,讲IE从不讲版本,因此自己做了测试并上传结论.以下结论皆是在标准模式下测试通过的,没有测试quirk模式. clientHeight 大部分浏览器对 clientHe ...

  8. Cocos2d-x 3.X 事件分发机制

    介绍 Cocos2d-X 3.X 引入了一种新的响应用户事件的机制. 涉及三个基本的方面: Event listeners 封装你的事件处理代码 Event dispatcher 向 listener ...

  9. 光盘刻录 CD刻录软件 Ashampoo Burning Studio特别版 刻录CD就这么简单

    著名的刻录软件Nero,其近上百M体积实在太大,而且安装之后的文件体积也有上G多.这么大的体积安装使用都不方便,好在现在很多都做得很不错,比如阿香婆的光盘刻录软件Ashampoo® Burning S ...

  10. 【BZOJ-1340】Escape逃跑问题 最小割

    1340: [Baltic2007]Escape逃跑问题 Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 264  Solved: 121[Submit] ...