当前位置: 首页 > news >正文

app开发网站建设公司哪家好国内ip地址 免费

app开发网站建设公司哪家好,国内ip地址 免费,photoshop培训班,如何同步打开两个wordpress原题链接:http://codeforces.com/problemset/problem/848/B 题意:好多个人分别从x,y轴不同位置不同时间往垂直坐标轴方向移动,一旦相遇他们转向,问所有人的到达边缘的位置。 思路:即使相遇后没有改变方向,终…

原题链接:http://codeforces.com/problemset/problem/848/B

 

题意:好多个人分别从x,y轴不同位置不同时间往垂直坐标轴方向移动,一旦相遇他们转向,问所有人的到达边缘的位置。

 

思路:即使相遇后没有改变方向,终点位置还是不变的。

1.首先可以根据开始移动的时间将每个人的初始位置往后移动ti单位,这样就可以看作所有人都同时开始移动了。

2.接下来,假设两个人i,j在t时刻(x, y)处相撞,那么可以推知两个人的初始位置分别为(x-t, y),(x, y-t),由此可知两个点的初始x+y(在考虑1的条件下为x+y-t)是相等的

3.如果我们画图分析一些样例,可以发现,初始x+y相等的若干个点:他们在相撞之后,最后落在边缘的位置,从左上到右上再到右下,依次和初始位置从左上到左下再到右下的顺序是一样的,即如果我们顺时针将终点标号,逆时针将x+y相等的起点标号,那么起点与对应的终点标号恰好是一样的。

那么我们可以先根据(x-t)排序并根据初始坐标逆时针排序,在最后记录答案时只需要在找到相等x+y的点(区间)之后,得到y轴出发的点的数量k,每个点对应终点就是排序好的位置往后第k个点,超出范围的取个模就行了。

 

AC代码:

 1 #include<iostream>
 2 #include<cstring>
 3 #include<cstdio>
 4 #include<algorithm>
 5 using namespace std;
 6 const int MAXN = 1e5 + 10;
 7 struct Node {
 8     int x, y;
 9     int val;
10     int g;
11 }node[MAXN], res[MAXN];
12 int p[MAXN];
13 bool cmp(int a, int b) {
14     if (node[a].val == node[b].val) {
15         if (node[a].x == node[b].x)
16             return node[a].y>node[b].y;
17         return node[a].x<node[b].x;
18     }
19     return node[a].val<node[b].val;
20 }
21 int main()
22 {
23     for (int i = 0;i<MAXN;i++) p[i] = i;
24     int n, w, h;
25     int pos, T, type;
26     scanf("%d %d %d", &n, &w, &h);
27     for (int i = 0;i<n;i++) {
28         scanf("%d %d %d", &type, &pos, &T);
29         if (type == 1) {
30             node[i].x = pos;
31             node[i].y = 0;
32             node[i].val = pos - T;
33         }
34         else {
35             node[i].x = 0;
36             node[i].y = pos;
37             node[i].val = pos - T;
38         }
39     }
40     sort(p, p + n, cmp);
41     node[n].val = -2*MAXN;
42     int first_y = -1, last_y = -1, first_x = -1, last_x = -1;
43     int v = node[p[0]].val, goal;
44     for (int i = 0;i<=n;i++) {
45         if (v != node[p[i]].val) {
46             int s = last_y - first_y + 1;
47             int t = last_x - first_y + 1;
48             int j = first_y;
49             if (first_y == -1 && last_y == -1) {
50                 s = 0;
51                 j = first_x;
52             }
53             if (first_x == -1 && last_x == -1) {
54                 s = 0;
55                 //j=first_y;
56             }
57             for (;j <= last_x;j++) {
58                 goal = j + s;
59 
60                 if (goal>last_x) goal -= t;//这个操作相当于取模
61                 node[p[j]].g = p[goal];
62             }
63 
64             v = node[p[i]].val;
65             first_y = -1, last_y = -1, first_x = -1, last_x = -1;
66         }
67         if (node[p[i]].x == 0) {
68             if (first_y == -1)    first_y = i;
69             last_y = i;
70         }
71         else {
72             if (first_x == -1) first_x = i;
73             
74         }last_x = i;//把last_x拿到外面比较妥当,防止判断j<=last_x时last_x==-1的情况
75     }
76     for (int i = 0;i<n;i++) {
77         goal = node[p[i]].g;
78         if (node[goal].x == 0) res[p[i]].x = w;
79         else res[p[i]].x = node[goal].x;
80 
81         if (node[goal].y == 0) res[p[i]].y = h;
82         else res[p[i]].y = node[goal].y;
83     }
84     for (int i = 0;i<n;i++)
85         printf("%d %d\n", res[i].x, res[i].y);
86     
87 }

 

转载于:https://www.cnblogs.com/MasterSpark/p/7482204.html

http://www.lbrq.cn/news/2576413.html

相关文章:

  • 同时在线上万人的网站需要什么配置云服务器福州网站seo优化公司
  • 企业信息公示系统全国官网seo人员的职责
  • seo网站导航建设技巧可以免费投放广告的平台
  • 怎么用node做动态网站seo概念
  • 学做网站论坛坑人吗seo外包大型公司
  • 赶集的网站怎么做考试培训
  • nginx 做udp网站电子邮件营销
  • 增城头条新闻上海网站seo快速排名
  • 宣武上海网站建设百度关键词热度
  • 赣州福泰龙网站建设泉州百度竞价推广
  • 哪个网站可下载免费ppt微信朋友圈广告投放代理
  • 亚马逊美国站登录入口免费com域名注册网站
  • wordpress网站同步插件企业官网建站
  • 泉州建站费用百度推广客服电话
  • 商务网站建设实训报告百度推广平台登录网址
  • 网络科技公司网站首页程序员培训
  • 网站开发的需求文档模板产品网络推广怎样做
  • dede 中英文网站 怎么做软文推广有哪些平台
  • 网页设计网站建设广告网络推广
  • 平面设计专业网站微信软文
  • 交互网站 百度seo网站排名推广
  • 网站建设爫金手指科捷15广告联盟推广
  • 做网站公司好开吗官网首页入口百度
  • 上海网站建设公司电java培训班学费一般多少
  • 松江品划做网站四川seo整站优化
  • 苏州营销型网站制作微信营销怎么做
  • 代做网站关键词排名北京网站推广公司
  • 临沂企业做网站企业排名优化公司
  • 网站的收藏本站怎么做重庆网站优化
  • 3.建设营销型网站流程宁波网站推广营销
  • 【LeetCode刷题指南】--二叉树的后序遍历,二叉树遍历
  • 电脑声音标志显示红叉的原因
  • 【昇腾推理PaddleOCR】生产级部署方式
  • WD5208S,12V500MA,应用于小家电电源工业控制领域
  • React ahooks——副作用类hooks之useThrottleEffect
  • C# 中抽象类、密封类、静态类和接口的区别