Codeforces Round #431 (Div. 2)
来源:互联网 发布:房卡 娄底放炮罚 源码 编辑:程序博客网 时间:2024/06/05 12:48
A题水题
B题 题意:给你一些点,问有没有两条平行线,所有点都在线上。
分析:鸽巢原理,因为一共有两条线,所以前三个点中,至少有两个点是一条线上的。所以我们分析讨论一下前面三个点就行了
c题 题目难懂?
题意:
给你个值,求合成的字符串为(多解)
比如s串aa ,t串aa要组成aaaa, 那么把这两个字符串拼接的花费为
∑c∈(′a′,′b′,′c′..′z′)f(s,c)*f(t,c)
f(s,c)为c字符在s中出现的次数。
这个题看懂题目之后就好做了,字符先选a,然后b…
d题
题意;在一个笛卡尔坐标系中,边界为(0,0),(w,0),(0,h),(w,h).x轴y轴上有一些点,他们会在t单位时间后沿垂直于相应坐标轴的正方向前进(如Y轴上的点,沿X轴的正方向前进),每个单位时间前进一个单位距离,如果两个点相撞,他们就改变成对方的方向。到边界之后会停下来,问最后点的坐标
分析:我们知道如果p-t相同的话,那么就一定会相撞。能不能直接排序,然后暴力呢?这样是不行的,因为如果y轴上的点和x轴上的点都可以相撞,时间复杂度就为5e4*5e4,,gg
画图可知,其实点的位置是可以确定下来的
PS:一定要头脑清晰。。
#include <iostream>#include <cstring>#include <cmath>#include <cstdio>#include <algorithm>#include <vector>using namespace std;const int maxn = 200005;int c[maxn];struct node{ int id,p;};struct point{ int x,y;}ans[maxn];vector <node> a[2][maxn];bool cmp(node a1,node a2){ return a1.p<a2.p;}int main(){ int n,w,h; scanf("%d %d %d",&n,&w,&h); for(int i=0;i<n;i++) { int g,p,t; scanf("%d %d %d",&g,&c[i],&t); node temp; temp.id=i,temp.p=c[i]; a[g-1][c[i]-t+100000].push_back(temp); } for(int i=0;i<=200001;i++) { sort(a[0][i].begin(),a[0][i].end(),cmp);//x sort(a[1][i].begin(),a[1][i].end(),cmp);//y for(int j=0;j<a[0][i].size();j++) { if((a[0][i].size()-j-1)>=(a[1][i].size())) { point t1; t1.x=a[0][i][j+a[1][i].size()].p;t1.y=h; ans[a[0][i][j].id]=t1; } else { int right = a[0][i].size()-j-1; point t;t.x=w,t.y=a[1][i][right].p; ans[a[0][i][j].id]=t; } } for(int j=0;j<a[1][i].size();j++) { if((a[1][i].size()-j-1)<a[0][i].size()){ point t1;t1.x=a[0][i][a[1][i].size()-j-1].p;t1.y=h; ans[a[1][i][j].id]=t1; } else { int heng=a[0][i].size(); point t;t.x=w,t.y=a[1][i][heng+j].p; ans[a[1][i][j].id]=t; } } } for(int i=0;i<n;i++) printf("%d %d\n",ans[i].x,ans[i].y); return 0;}
阅读全文
0 0
- Codeforces Round #431 (Div. 2)
- Codeforces Round #431 (Div. 2)
- Codeforces Round #431 (Div. 2)
- Codeforces Round #431 (Div. 2)
- Codeforces Round #431 (Div. 2)
- Codeforces Round #431 (Div. 2)
- Codeforces Round #431 (Div. 2) A
- Codeforces Round #431 (Div. 2) B, C
- Codeforces Round #431 (Div. 2) 总结
- Codeforces Round #431 (Div. 2) 题解
- Codeforces Round #431 (Div. 2) ABCD
- Codeforces Round #431 (Div. 2) 题解
- Codeforces Round #102 (Div. 2)
- Codeforces Round #103 (Div. 2)
- Codeforces Round #103 (Div. 2)
- Codeforces Round #104 (Div. 2)
- Codeforces Round #105 (Div. 2)
- Codeforces Round #105 (Div. 2)
- 数据结构课程设计之姓名和日期输入
- 青蛙跳台阶II
- C++11标准及知识点的记录(3)
- java里被封装在jar包里的某个class,由于没有源码,不方便深入调试。为了深入调试,在attach的时候选择源程序,为什么eclipse中右边outline的函数点,.java源文中却没有没有?
- ES7 decorator 从入门到放弃
- Codeforces Round #431 (Div. 2)
- win7 安装goahead服务器
- 关于操作数据库的一些笔记
- [leetcode] 53. Maximum Subarray
- 判断是否为回文字符
- python numpy模块/库
- linux权限-bash: ./startup.sh: Permission denied
- 关于集合的有意义的代码 —— (一)
- 【京东2016研发工程师编程题】分苹果