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

建设网站公网络营销论文怎么写

建设网站公,网络营销论文怎么写,网站怎么建设,讯美深圳网站建设题目链接 题目大意 平面上给定两个点集,判定两个点集分别形成的凸多边形能否通过旋转、平移重合。 点集大小 ≤ \leq ≤ 1 0 5 10^{5} 105,坐标范围 [0, 1 0 8 10^{8} 108 ]. 思路 题意很明显,先求出凸包再判断两凸包是否同构。这里用…

题目链接

题目大意

平面上给定两个点集,判定两个点集分别形成的凸多边形能否通过旋转、平移重合。

点集大小 ≤ \leq 1 0 5 10^{5} 105,坐标范围 [0, 1 0 8 10^{8} 108 ].

思路

题意很明显,先求出凸包再判断两凸包是否同构。这里用的 A n d r e w Andrew Andrew 算法求。判同构的话,将俩凸包都转化成字符串的形式,用 k m p kmp kmp 去匹配从而判断该串中是否存在另外一个凸包所对应的字符串。

code

#include <bits/stdc++.h>
#define int long long
#define ll long long
#define pii pair<int, int>using namespace std;
const int N = 1e5 + 100, M = 2e5 + 100;
int n, m, id;
int tmp1, tmp2, minx, ans;
pair<int, int> s[M];
pair<int, int> t[M];
int nxt[M];struct Point
{int x, y;
} tmp, st;
Point a[N];
vector<Point> v;
vector<Point> e[3];int dop(Point a, Point b)
{return a.x * b.x + a.y * b.y;
}
int crp(Point a, Point b)
{return a.x * b.y - a.y * b.x;
}
int len(Point a, Point b)
{return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
}
Point mins(Point a, Point b)
{Point c;c.x = b.x - a.x;c.y = b.y - a.y;return c;
}
bool cmp1(Point a, Point b)
{if (a.x == b.x){return a.y < b.y;}return a.x < b.x;
}
bool cmp(Point a, Point b)
{int sum1 = crp(mins(st, a), mins(st, b));if (sum1 == 0.0){if (a.x == b.x){return a.y < b.y;}return a.x < a.x;}return sum1 > 0.0;
}
void get_nxt()
{int i = 0, j = -1;nxt[0] = -1;while (i < 2 * e[1].size()){if (j == -1 || s[i] == s[j]){i++;j++;nxt[i] = j;}else{j = nxt[j];}}
}
bool kmp()
{int i = 0, j = 0;while (i < 2 * e[1].size()){if (j == -1 || s[i] == t[j]){i++;j++;}else if (j == e[2].size()){return true;}else{j = nxt[j];}}return false;
}void solve()
{cin >> n >> m;for (int id1 = 1; id1 <= 2; id1++){for (int i = 1; i <= n; i++){cin >> tmp1 >> tmp2;tmp.x = tmp1, tmp.y = tmp2;a[i] = tmp;}minx = 0x3f3f3f3f;sort(a + 1, a + n + 1, cmp1);st.x = a[1].x, st.y = a[1].y;id = 1;for (int i = 2; i <= n; i++){v.push_back(a[i]);}sort(v.begin(), v.end(), cmp);e[id1].push_back(a[id]);for (auto x : v){if (e[id1].size() <= 1){e[id1].push_back(x);continue;}bool fl = false;while (e[id1].size() >= 2){int sum1 = crp(mins(e[id1][e[id1].size() - 1], e[id1][e[id1].size() - 2]), mins(e[id1][e[id1].size() - 1], x));if (sum1 >= 0.0){e[id1].pop_back();}else{e[id1].push_back(x);fl = true;break;}}if (!fl){e[id1].push_back(x);}}n = m;v.clear();}if (e[1].size() != e[2].size()){cout << "NO\n";return;}for (int i = 0; i < e[1].size(); i++){s[i] = {(e[1][i].x - e[1][(i + 1) % e[1].size()].x) * (e[1][i].x - e[1][(i + 1) % e[1].size()].x) + (e[1][i].y - e[1][(i + 1) % e[1].size()].y) * (e[1][i].y - e[1][(i + 1) % e[1].size()].y), dop(mins(e[1][(i + 1) % e[1].size()], e[1][i]), mins(e[1][(i + 1) % e[1].size()], e[1][(i + 2) % e[1].size()]))};}for (int i = 0; i < e[1].size(); i++){s[i + e[1].size()] = s[i];}for (int i = 0; i < e[2].size(); i++){t[i] = {(e[2][i].x - e[2][(i + 1) % e[2].size()].x) * (e[2][i].x - e[2][(i + 1) % e[2].size()].x) + (e[2][i].y - e[2][(i + 1) % e[2].size()].y) * (e[2][i].y - e[2][(i + 1) % e[2].size()].y), dop(mins(e[2][(i + 1) % e[2].size()], e[2][i]), mins(e[2][(i + 1) % e[2].size()], e[2][(i + 2) % e[2].size()]))};}get_nxt();cout << (kmp() ? "YES" : "NO");
}signed main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int tp = 1;// cin >> t;while (tp--)solve();return 0;
}

文章转载自:

http://otYMggEd.zmyzt.cn
http://xT8b8JmK.zmyzt.cn
http://JKcJSxcb.zmyzt.cn
http://TzZdTaqe.zmyzt.cn
http://7fJI6pdA.zmyzt.cn
http://ywNZhx1s.zmyzt.cn
http://0HgFYmVn.zmyzt.cn
http://pBHqVzDK.zmyzt.cn
http://iSCUmd4L.zmyzt.cn
http://5CYZYRbB.zmyzt.cn
http://zSOCusXL.zmyzt.cn
http://D6ClAJ5R.zmyzt.cn
http://jHS20V7M.zmyzt.cn
http://Wz4BUZ5q.zmyzt.cn
http://sLMnlGur.zmyzt.cn
http://uG3OCMtK.zmyzt.cn
http://EJu0dmhQ.zmyzt.cn
http://s98VN3Gg.zmyzt.cn
http://FXtqrYrI.zmyzt.cn
http://vlKKQYVK.zmyzt.cn
http://pQYGXKNU.zmyzt.cn
http://UVO9qWer.zmyzt.cn
http://85L41krk.zmyzt.cn
http://3NGzSqhS.zmyzt.cn
http://3vlzFbUu.zmyzt.cn
http://I1ivIHsR.zmyzt.cn
http://fzh0Kkqb.zmyzt.cn
http://lyqpLj4w.zmyzt.cn
http://j6UphOGi.zmyzt.cn
http://FbirMZb5.zmyzt.cn
http://www.dtcms.com/wzjs/762087.html

相关文章:

  • 画图在什么网站上做兼职centos 下载wordpress
  • 网站规划免费的软件网站建设
  • 网站建设主要流程图做视频网站 许可
  • 生态环境工程公司网站建设相关网站怎么做
  • 拜师做网站做php网站用什么软件
  • 深圳官方网站新闻云主机挂游戏
  • 江苏城乡住房和城乡建设厅网站怎么设计公司logo
  • 网站的改版怎么做扬州高端网站制作
  • 成都住房和城乡建设局网站首页宁河网站建设
  • 加强网站安全建设网站上海备案查询
  • 天水嘉通建设集团网站营销型网站建设平台
  • 给公司做网站的公司做团购网站哪家好些
  • 上海学做网站北京网站系统开发
  • wordpress转手机做移动网站优化优
  • 深圳建筑设计找工作哪个招聘网站网站平台做期货
  • html5学习网站青岛品牌设计
  • 展示型网站设计方案企业网站建设费用价格
  • iis 创建网站企业网站建设大概多少钱
  • 室内设计师常用网站网站与新闻建设总结
  • 淘宝建设网站的好处网站开发全包
  • 有关网站开发的文献或论文最简单的网站怎么做
  • 在线网站地图生成器福州网站建设
  • 做展示类网站怎么开公众号
  • 专业做网站 郑州网站策划主要工作是什么
  • 免费商城网站建设建设网站的实验报告
  • 安徽省住房城乡建设厅网站电工营销软文100字
  • 用shopify 做网站wordpress 0day
  • 企业网站部署计划网页制作软件html代码编辑器
  • wordpress搭建商城网站别人盗用我的网站备案号怎么办
  • 聊城手机网站公司电话九江网络营销