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

aspnet网站开发教程/网络营销讲师

aspnet网站开发教程,网络营销讲师,wordpress如何加密,营销式网站建设翻译题解 首先给出结论 把一段看做一堆石子 可以做到跟nim游戏等价 具体 我们需要归纳证明一个结论 当前current_multiplier为 c,石子总数为 n ,若异或和为 0那么后手将以至少 n2c 的净得分获胜 当游戏只剩最后两步的时候,两堆石子分别是n2&#xff0…

翻译题解

首先给出结论 把一段看做一堆石子 可以做到跟nim游戏等价

具体 我们需要归纳证明一个结论

当前current_multiplier为 c ,石子总数为 n ,若异或和为 0 那么后手将以至少 n2c 的净得分获胜

  • 当游戏只剩最后两步的时候,两堆石子分别是n2,那么后手会赢 n2c×2n2c=n2c
  • 否则我们设先手拿掉之后还剩 y 个石子,后手接着拿 x 个石子,并保持异或和仍为 0 ,那么之后根据归纳的结论,之后会赢 yx2c×4,这两步先手得(ny)c,后手得xc×2分,那么总共后手得 3ycnc ,跟 x 无关了,那么先手肯定会拿最多,让 y 小,因为异或和为 0 ,那么最多一堆是n2,也就是说,后手至少会赢 n2c,得证

还缺关键的一步,后手是不是一定存在决策,使得异或和仍然不变

考虑nim游戏,先手从一堆中拿去了一些,后手必然从另一堆拿,因为后手再从这堆拿不可能满足 那么如果先手把一堆 a 分裂 b+c<a,那么可以相当于拿走了 ab xor c个石子 因为 b xor cb+ca,仿照nim从别的堆拿掉就好了

然后只要枚举第一次的操作就好了
还有一个特判 如果把唯一的一整堆都拿了,那么还是不能胜的

// BEGIN CUT HERE  
#include<conio.h>
#include<sstream>
// END CUT HERE  
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<vector>
#include<map>
#include<string>
#include<set>
#define cl(x) memset(x,0,sizeof(x))
using namespace std;
typedef long long ll;const int N=55;int len,n,a[N];class TheXGame{
public:int firstMove(string B){len=B.length(); n=0;for (int i=0,j;i<len;)if (B[i]=='-'){j=i; while (j+1<len && B[j+1]=='-') j++;a[++n]=j-i+1; i=j+1;}elsei++;int sum=0;for (int i=1;i<=n;i++) sum^=a[i];int ans=1<<30;for (int i=1;i<=n;i++)for (int j=0;j<=a[i];j++)for (int k=0;k<=a[i];k++)if (!(n==1 && j==0 && k==0))if (j+k<a[i] && (sum^a[i]^j^k)==0)ans=min(ans,a[i]-j-k);return ans==1<<30?-1:ans;}// BEGIN CUT HERE
public:void run_test(int Case) { if ((Case == -1) || (Case == 0)) test_case_0(); if ((Case == -1) || (Case == 1)) test_case_1(); if ((Case == -1) || (Case == 2)) test_case_2(); if ((Case == -1) || (Case == 3)) test_case_3(); }
private:template <typename T> string print_array(const vector<T> &V) { ostringstream os; os << "{ "; for (typename vector<T>::const_iterator iter = V.begin(); iter != V.end(); ++iter) os << '\"' << *iter << "\","; os << " }"; return os.str(); }void verify_case(int Case, const int &Expected, const int &Received) { cerr << "Test Case #" << Case << "..."; if (Expected == Received) cerr << "PASSED" << endl; else { cerr << "FAILED" << endl; cerr << "\tExpected: \"" << Expected << '\"' << endl; cerr << "\tReceived: \"" << Received << '\"' << endl; } }void test_case_0() { string Arg0 = "X---X-X-"; int Arg1 = 1; verify_case(0, Arg1, firstMove(Arg0)); }void test_case_1() { string Arg0 = "----"; int Arg1 = 2; verify_case(1, Arg1, firstMove(Arg0)); }void test_case_2() { string Arg0 = "--XXX" ; int Arg1 = -1; verify_case(2, Arg1, firstMove(Arg0)); }void test_case_3() { string Arg0 = "--------X-----X----X"; int Arg1 = 3; verify_case(3, Arg1, firstMove(Arg0)); }// END CUT HERE};// BEGIN CUT HERE
int main(){TheXGame ___test;___test.run_test(-1);getch() ;return 0;
}
// END CUT HERE
http://www.jmfq.cn/news/4778281.html

相关文章:

  • 深圳电信网站备案/河南seo外包
  • 网站建设 设计业务范围/六年级下册数学优化设计答案
  • 福州手机网站建设/河源新闻最新消息
  • 网站运营做内容/鸿星尔克网络营销
  • 做网站必须要有数据库/吉林seo管理平台
  • 网站建设需求怎么写/直通车推广
  • 做网站产品搜索展示实现/seo算法入门教程
  • 做写真图片网站合法吗/精品成品网站源码
  • 郑州做营销型网站公司/邯郸百度推广公司
  • 贵金属网站模板/企业查询
  • 济南市住建厅官方网站/网站底部友情链接代码
  • 旅游酒店网站建设/bilibili官网网页入口
  • 都是做面食网站/企业网站推广模式
  • 带你做网站毕设/网站搭建工具
  • 网站修改影响做百度竞价吗/郑州seo公司
  • 天津艺匠做网站怎么样/全网
  • 吉林省长春网站建设/怎么制作网站平台
  • 网站设计基础语言不包括这些内容/安徽网站推广
  • 武汉软件网站开发公司/成功的软文营销案例
  • 建筑工程类招聘网站/网站流量统计分析工具
  • 做网站服务器装虚拟机/seo公司后付费
  • 电子政务门户网站建设的意义/免费找精准客户软件
  • 制作营销网站公司/seo网页优化公司
  • 传奇网站劫持怎么做/百度精简版入口
  • 线上网站怎么做/外链收录网站
  • 90自己做网站/广东seo
  • 哈尔滨龙彩做网站多少钱/2021百度模拟点击工具
  • 网站建设技术包括哪些/2022年新闻热点摘抄
  • flask做视频网站/seo综合排名优化
  • 怎么做北京赛车网站/优书网首页