Codeforces Round #329 (Div. 2)
2015-11-05 20:32
351 查看
【A. 2Char】
在n个字符串中,任选x个组成一长串,最终得到的长串最多由两个字母组成
问最终得到的长串的最大长度是多少
两个for循环,26个字母两两组合
【B. Anton and Lines】
直线的方程式是y = k*x+b
输入x1, x2以及n个直线方程式的k,b
问x1 < x < x2中是否存在两条直线相交于一点
y1 = k1*x1+b1 y2 = k1*x2+b1
y1' = k2*x1+b2 y2' = k2*x2+b2
通过画图我们可以发现,如果y1 < y1' && y2 > y2'
那这两条直线肯定相交,与k,b的正负无关
所以我们可以按照y1从小到大排序,比较y2,y2只要相邻两个比较就可以了
不懂的可以看一下
这三条线排好序后是y1 y2 y3
如果y3与y1相交,那么y3一定与y2相交,所以只要比较相邻的两条就可以了
【C. Beautiful Function】
告诉我们n个圆的圆心坐标以及半径,求f(t), g(t)
点(xt, yt)在圆内or圆的边上,其中xt = f(t), yt = g(t)
这又是一个构造题,每次碰到构造题都觉得好难
这一题是看题解的,真心不会做
x跟y的表达式都是下面式子的和
这个表达式有一个很神奇的地方,乘号的右边,当且仅 当i == t的时候是2,否则是0
所以这样子得到的点必然是在圆内的
【D. Happy Tree Party】
【E. Strange Calculation and Cats】
在n个字符串中,任选x个组成一长串,最终得到的长串最多由两个字母组成
问最终得到的长串的最大长度是多少
两个for循环,26个字母两两组合
【B. Anton and Lines】
直线的方程式是y = k*x+b
输入x1, x2以及n个直线方程式的k,b
问x1 < x < x2中是否存在两条直线相交于一点
y1 = k1*x1+b1 y2 = k1*x2+b1
y1' = k2*x1+b2 y2' = k2*x2+b2
通过画图我们可以发现,如果y1 < y1' && y2 > y2'
那这两条直线肯定相交,与k,b的正负无关
所以我们可以按照y1从小到大排序,比较y2,y2只要相邻两个比较就可以了
不懂的可以看一下
这三条线排好序后是y1 y2 y3
如果y3与y1相交,那么y3一定与y2相交,所以只要比较相邻的两条就可以了
【C. Beautiful Function】
告诉我们n个圆的圆心坐标以及半径,求f(t), g(t)
点(xt, yt)在圆内or圆的边上,其中xt = f(t), yt = g(t)
这又是一个构造题,每次碰到构造题都觉得好难
这一题是看题解的,真心不会做
x跟y的表达式都是下面式子的和
这个表达式有一个很神奇的地方,乘号的右边,当且仅 当i == t的时候是2,否则是0
所以这样子得到的点必然是在圆内的
#include <bits/stdc++.h> using namespace std; typedef vector<int>vi; string generateOne(int i, int x) { int b = x/2; char temp[100]; sprintf(temp, "((1-abs((t-%d)))+abs((abs((t-%d))-1)))", i, i); string s(temp); sprintf(temp, "(%d*%s)", b, s.c_str()); string res(temp); return res; } string generate(int n, const vi &vals) { string res = ""; for(int i = 0; i < n; i++) { string ff = generateOne(i, vals[i]); if(i == 0) res = ff; else { res = "(" + res + "+" + ff + ")"; } } return res; } int main() { int n, r; scanf("%d", &n); vi x(n), y(n); for(int i = 0; i < n; i++) { cin>>x[i]>>y[i]>>r; } string f = generate(n, x); string g = generate(n, y); cout<<f<<endl<<g<<endl; return 0; }
【D. Happy Tree Party】
【E. Strange Calculation and Cats】
相关文章推荐
- Codeforces Round #329 (Div. 2)A. 2Char
- 注册AxtiveX控件
- 拉普拉斯近似算法小结
- STM32F407+DP83848
- python关于 date的使用
- 这几天的总结
- 漫谈CSS transform动画技术
- 关于 Repository和UnitOfWork 模式的关系
- Java Servlet工作原理问答
- leetcode 4 Median of Two Sorted Arrays
- 清除浮动的6中方法
- codeforces 593 D. Happy Tree Party (LCA + 并查集)
- linux kernel内存碎片防治技术
- JQuery基础列表
- 1105 文法树
- hibernate与mybatis异同与比较(涵盖网上各个版本,清晰明了)
- 堆排序算法之Java实现
- MyBatis使用Collection查询多对多或一对多结果集bug
- iOS JPush极光推送
- 钱组合数