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

招聘网站预算怎么做哈尔滨网站建设优化公司

招聘网站预算怎么做,哈尔滨网站建设优化公司,开网店3个月来亏了10万,新手入门网站建设书籍题干#xff1a; 五子棋是一个简单的双人游戏。 小希最近在思索一种更好玩的五子棋。她希望胜利不再是谁先五子连珠谁赢#xff0c;而变成谁落子后#xff0c;该子与之前的子五子连珠的次数更多才能胜利。 但是如果是在普通的棋盘上#xff0c;这个游戏又显得不是很有趣…题干   五子棋是一个简单的双人游戏。 小希最近在思索一种更好玩的五子棋。她希望胜利不再是谁先五子连珠谁赢而变成谁落子后该子与之前的子五子连珠的次数更多才能胜利。 但是如果是在普通的棋盘上这个游戏又显得不是很有趣所以她将棋盘扩大至N*N因为棋盘过大没有一个程序能将其展示出来所以如何落子只能凭借记忆。 她希望你能写一个程序判断每步落子与之前的同色棋子是否能形成五子连珠。   五子连珠是指是横着竖着或者斜着的八个方向存在连续的颜色相同的至少五个子。 注意这个版本的五子棋仍然是双人游戏先手执黑后手执白。同色才是五子棋。 输入描述: 第一行一个正整数N,M表示棋盘大小和落子次数。 随后M行每行两个整数xixi,yiyi表示落子位置。N,M≤300,000N,M≤300,000 1≤xi,yi≤N1≤xi,yi≤N数据保证同一个子的位置不会多次落子。 输出描述: 对于每一个子一行如果该步落下后该子和其他子能形成五子连珠输出一个大写的Y否则输出一个大写的N。 示例1 输入 复制 6 12 1 1 6 1 2 2 5 2 3 3 4 3 4 4 3 4 5 5 2 5 6 6 1 6 输出 复制 N N N N N N N N Y Y Y Y 解题报告 这题卡常数太狠了啊、、、set判断边界是否出现过随便怎么写来标记这个二维坐标都可以。如果这个棋盘说了n*m1e6甚至可以用二维vector但是这里是n*n就没治了 AC代码1 #includebits/stdc.h using namespace std; struct Node {int x, y;Node(int x, int y) : x(x), y(y) {}bool operator (const Node node) const {return x node.x || (x node.x y node.y);} }; int n, m; setNode st[2]; const int dx[] {0, 1, 1, 1}; const int dy[] {1, 0, 1, -1}; bool judge(int x, int y, int c) {for(int k 0; k 4; k) {int cnt 1;for(int i 1; i 4; i) {Node tmp(xi*dx[k], yi*dy[k]);if(st[c].find(tmp) st[c].end())break;cnt;}for(int i 1; i 4; i) {Node tmp(x-i*dx[k], y-i*dy[k]);if(st[c].find(tmp) st[c].end())break;cnt;}if(cnt 5) return true;}return false; } int main() {cinnm;for(int i 0; i m; i) {int x, y; scanf(%d%d,x,y);st[i1].insert(Node(x, y));puts(judge(x, y, i1) ? Y : N);}return 0; } AC标程但是因为数据问题这题不加判边界这一句也可以AC #include bits/stdc.h using namespace std;const int mn 3e5 5;const int dx[] {1, 1, 0, -1, -1, -1, 0, 1}; const int dy[] {0, 1, 1, 1, 0, -1, -1, -1};int n; unordered_mapint, bool h[mn];inline bool inbound(int x, int y) {return x n x 1 y n y 1; }inline bool getColor(int x, int y) { return h[x][y]; }inline int getNumberByWay(int k, int x, int y) {int s 1;while (s 5) {int ux x dx[k] * s, uy y dy[k] * s;if (!inbound(x, y) || !h[ux].count(uy) ||getColor(x, y) ! getColor(ux, uy))return s - 1;s;}return s; }inline bool win(int x, int y, bool color) {h[x][y] color;for (int i 0; i 4; i) {if (getNumberByWay(i, x, y) getNumberByWay(i 4, x, y) 1 5)return 1;}return 0; }int m;int main() {scanf(%d%d, n, m);for (int i 1; i m; i) {int x, y;scanf(%d%d, x, y);if (win(x, y, i % 2))puts(Y);elseputs(N);} } AC代码2Hash版本 #includebits/stdc.h #define ll long long using namespace std; int ha[10000007]{0}; int n,m,x,y; const ll mod 9989783; ll seed 3e5 7; inline int read(){int x 0;char c getchar();while(c0||c9) c getchar();while(c0c9){x x*10 c-0;c getchar();}return x; } inline int gethash(ll x,ll y){int t (x*seed y)%mod;return t; } int find(int x,int y,int dx,int dy,int p,int d){if(d4) return d;if(x1xny1ynha[gethash(x,y)] p) return find(xdx,ydy,dx,dy,p,d1);return d; } int main(){scanf(%d%d,n,m);for(int i1;im;i){x read();y read();ha[gethash(x,y)] i%2 1;if(find(x-1,y-1,-1,-1,i%2 1,0) find(x1,y1,1,1,i%2 1,0)4|| find(x-1,y1,-1,1,i%2 1,0) find(x1,y-1,1,-1,i%2 1,0)4|| find(x-1,y,-1,0,i%2 1,0) find(x1,y,1,0,i%2 1,0)4|| find(x,y-1,0,-1,i%2 1,0) find(x,y1,0,1,i%2 1,0)4) printf(Y\n);else printf(N\n);} } AC代码3900ms #includebits/stdc.h using namespace std; struct Node {int x, y;Node(int x, int y) : x(x), y(y) {}bool operator (const Node node) const {return x node.x || (x node.x y node.y);} }; int n, m; setNode st[2]; const int dx[] {0, 1, 1, 1}; const int dy[] {1, 0, 1, -1}; bool judge(int x, int y, int c) {for(int k 0; k 4; k) {int cnt 1;for(int i 1; i 4; i) {Node tmp(xi*dx[k], yi*dy[k]);if(st[c].find(tmp) st[c].end())break;cnt;}for(int i 1; i 4; i) {Node tmp(x-i*dx[k], y-i*dy[k]);if(st[c].find(tmp) st[c].end())break;cnt;}if(cnt 5) return true;}return false; } int main() {cinnm;for(int i 0; i m; i) {int x, y; scanf(%d%d,x,y);st[i1].insert(Node(x, y));puts(judge(x, y, i1) ? Y : N);}return 0; } 但是这套代码你要是judge函数这么写就必须用个Hash来写不然就会T不知道为啥。1600ms左右 虽然判边界没用但是这题还是有点用的因为要看mp是否越界、、但是上面那个代码不加这个判断边界这个函数也可以AC我感觉就是因为方向的顺序问题吧、 #includebits/stdc.h using namespace std; struct Node {int x, y;Node(int x, int y) : x(x), y(y) {}bool operator (const Node node) const {return x node.x || (x node.x y node.y);} }; int n, m; setNode st[2]; unordered_mapint , bool mp[300005]; const int dx[] {0, 1, 1, 1}; const int dy[] {1, 0, 1, -1}; inline bool inbound(int x, int y) {return x n x 1 y n y 1; } bool judge(int x, int y, int c) {for(int k 0; k 4; k) {int cnt 0;for(int i -4; i 4; i) {int tx xi*dx[k];int ty yi*dy[k];if(!inbound(tx,ty) || !mp[tx].count(ty) || mp[tx][ty] ! mp[x][y]) {cnt 0;continue;}if(cnt 5) return true;}}return false;} int main() {cinnm;for(int i 0; i m; i) {int x, y;scanf(%d%d,x,y);mp[x][y]i%2;//puts(judge(x, y, i%2) ? Y : N);}return 0; }
http://wiki.neutronadmin.com/news/396102/

相关文章:

  • 南昌网站排名优化费用做h5单页的网站
  • 投资网站建设公司外包公司什么意思
  • wordpress如何设置头像如何做网站 seo
  • 不是网站开发语言的是福州整站优化
  • 给别人做网站打电话推销做任务领礼品的网站
  • 网站开发网站模板设计网站路径怎么做
  • 如何做简单视频网站南昌p2p网站建设公司
  • 做网站的文件图片编辑软件加文字
  • 微商城网站建设咨询百度小程序入口
  • 长春网站建设兼职进入公众号即弹出图文
  • 中文静态网站下载外贸推广哪个公司好
  • ip地址直接访问网站邯郸信息港官网登录
  • 专做杰伦头像的网站班级网站主页设计模板
  • 临沂网站建设价格做网站优化的工资有多高
  • 网站禁止ip访问成都网站设计优选柚v米科技
  • 安阳网站建设首选岳阳网格员
  • 服务器搭建网站数据库二级域名免费
  • 淘宝客网站免费建站网络协议分析课程设计报告
  • 环保油 东莞网站建设动易学校网站管理系统
  • 论文个人网站建设房地产销售人员网站怎么做
  • 做网站购买服务器吗网站建设维护属于什么专业
  • jsp做的网站效果什么网站上可以做国际贸易
  • 免费建网站中国新零售网
  • 古交网站建设推广网站开发的税率
  • 威海做企业网站企业品牌策划推广方案
  • 莱州网站建设报价宁波营销型网站建设优化建站
  • 商城网站开发教程视频万网阿里云域名查询
  • 网站建设动画教程长春制作门户网站的公司
  • 外贸公司网站如何免费推广游戏如何制作
  • 建设部办公厅网站微信小程序怎么做网站链接