小C的填数游戏】的更多相关文章

题意: 给出一张n个点的无向图 i连向i-1和i-2 边权为wij 有两个点权ai和bi ai为0或1 在给m个操作 1.将ai异或1 2.将区间x到y的点都填上一个数ci 使得Σ(bi*(ai^ci))+Σ((ci^cj)*wij) 输出最小值 题解: 30分算法: 动规 f[i][j]表示前i个点后两个点的ci状态为j的最小值 维护一次n^2但每次修改就要整个dp重做 特别浪费 时间复杂度O(nm) 正解: 用线段树维护f数组 线段树一段维护前两点和后两点状态为i时的最小值 这样每次修改lo…
[题目描述] 一个长为n的序列,每个元素有一个a[i],b[i],a[i]为0||1,每个点和他相邻的两个点分别有两条边,权值为cost1[i],cost2[i],对于每个区间l,r,我们可以给每一个数一个c[i]值,c[i]=0||1,使得Σ(b[j]*(a[j]^c[j]))+cost1[j]*(c[j]^c[j+1])+cost2[j]*(c[j]^c[j+2]),j,j+1,j+2在[l,r]内时累加,现在有m次操作: M x:将x位置的a[i]^=1: Q l r:询问区间l,r的答案…
目录 @题目描述@ @题解@ @代码@ @题目描述@ 小 D 特别喜欢玩游戏.这一天,他在玩一款填数游戏. 这个填数游戏的棋盘是一个 n×m 的矩形表格.玩家需要在表格的每个格子中填入一个数字(数字 0 或者数字 1 ),填数时需要满足一些限制. 下面我们来具体描述这些限制. 为了方便描述,我们先给出一些定义: 我们用每个格子的行列坐标来表示一个格子,即(行坐标,列坐标).(注意: 行列坐标均从 0 开始编号) 一条路径是合法的当且仅当: (1)这条路径从矩形表格的左上角的格子(0,0)出发,到…
2017年全国大学生信息安全竞赛 Reverse 填数游戏 起因是吾爱破解大手发的解题思路,觉得题挺有意思的,就找来学习学习 这是i春秋的下载链接 http://static2.ichunqiu.com/icq/resources/fileupload/CTF/echunqiu/qgdxs/numgame_8808BCE6D17A3EF92461A50079264767.zip 以防万一呢,我在网盘也放了一份名字叫numgame_8808BCE6D17A3EF92461A50079264767.…
传送门 Description 耳熟能详,就不多说了 Solution 对于一个不会推式子的蒟蒻,如何在考场优雅地通过此题 手玩样例,发现对于 \(n=1\) , \(ans=2^m\) .对于 \(n=2\) , \(ans=4\times 3^{m-1}\) .或者干脆打出 \(n,m\le 3\) 的表 肉眼观察法,发现似乎有 \(f(n,m+1)=3f(n,m)\),但这并不是正确的,但如果你仅仅是这么认为了,你仍然能够获得很多分数 想结论,都是特别特别显然的那种: \(f(n,m)=f…
LOJ 感觉这个题十分好玩于是诈尸更博.一年之前的做题心得只有这道题还记得清楚-- 设输入为\(n,m\)时的答案为\(f(n,m)\),首先\(f(n,m)=f(m,n)\)所以接下来默认\(n \leq m\).一件重要的事情是打表得到当\(m>n+1\)时\(f(n,m) = f(n,m-1)*3\),证明不会. 所以最后的问题是快速得到\(f(8,9)\).\(n,m\)不大考虑搜索. 首先考虑一些没用的剪枝: 1.同一条对角线上填入的数字自底向上不增.这个不难反证得到. 2.如果存在\…
题目戳我 \(\text{Solution:}\) 题目标签是\(dp,\)但是纯暴力打表找规律可以有\(65\)分. 首先是对于\(O(2^{nm}*nm)\)的暴力搜索,显然都会. 考虑几条性质: 每一条由左下到右上的对角线需要非严格单调递减. 若\(a[i][j-1]=a[i-1][j]\)则以\(a[i][j]\)为左上角的矩阵填的数必须相等. 证明: 对于第一条,若不满足这条性质,则必然存在一个路径,\(R\to 1,D\to 0\)使得其不满足题意. 对于第二条,首先满足\(R\to…
luogu loj 被这道题送退役了 题是挺有趣的,然而可能讨论比较麻烦,肝了2h 又自闭了,鉴于CSP在即,就只能先写个打表题解了 下面令\(n<m\),首先\(n=1\)时答案为\(2^m\),然后打表可以发现,\(\forall i>n+1\ ans_{n,i}=3^{m-(n+1)}ans_{n,n+1}\),现在考虑怎么快速打表 下面记从上往下行编号从\(1\)到\(n\),从左往右列编号从\(1\)到\(m\).要发掘两个性质,第一个是对于一条左下到右上的对角线,填的数一定是先一段…
下面先给出大家都用的打表大法: 首先我们可以发现 \(n \le 3\) 的情况有 \(65pts\),而 \(n\) 这么小,打一下表何乐而不为呢?于是我写了一个爆枚每个位置再 \(check\) 的 \(dfs\),复杂度 \(O(2 ^ {nm + n + m} \log 2 ^ {n + m - 1})\) 因为 \(n\) 实在太小了于是我打出了下面的表(\(1\) 的情况直接算就没打了,下面第一个数都是从 \(m = n\) 开始的) 2 : 12 36 108 324 ... 3…
题目链接 这道题讲道理还是不错的,因为你需要不断挖掘其中的性质来帮助解题.可惜数据范围开在这里让考试时的我很慌,勉强也就写了$65$分就没了.回忆在考场上,思路是没有错的,就是发掘不够深入,思路还不够清晰.事实上考场上没有选择继续做这道题是对的,因为就算是我考后仔细分析之后,写完这道题仍然花了我不少时间. 我们可以循着思路一步步分析,一步步得到每一个性质. 题目中对其走过路径的字典序的比较提示我们按斜行分析.稍加思考我们就能得到一个明显的结论,就是对于某一个格子如果它是$1$,那它的右上角的那个…
题目 作为NOIP2018的题目,我觉得不需要把题目贴出来了. 大意就是,在一个n∗mn*mn∗m的010101矩阵中,从左上角到右下角的路径中,对于任意的两条,上面的那条小于下面的那条.问满足这样的矩阵的个数. 好吧,有点简陋-- 比赛思路 一眼看下去,诶,nnn这么小,一下子就想到了状压DP. 然后有一点很显然:(i,j)≤(i+1,j−1)(i,j)\leq (i+1,j-1)(i,j)≤(i+1,j−1). 依照这个性质,我打出了一个状压DP. 然后发现,第二个样例崩了. 然后手算了半天…
原文链接www.cnblogs.com/zhouzhendong/p/UOJ440.html 前言 菜鸡选手到省选了才做联赛题. 题解 首先我们分析一下性质: 1. 假如一个格子是 0,那么它的右上角一定是 0 . 2. 假如一个格子的左边和上面两个格子一样,那么从这个格子到终点的任何两条路径相同. 不难发现,对于第 3 个斜列,我们发现这个斜列至少有一对相邻的相同格子. 也就是说,从第 3 行第 3 列这个格子到达终点的所有路径都相同. 设 $dp[c][i][j][k]$ 表示前 $c$ 列…
打表找规律.... #include<bits/stdc++.h> #define ui unsigned int #define ll long long #define db double #define ld long double #define ull unsigned long long #define ft first #define sd second #define pb(a) push_back(a) #define mp(a,b) std::make_pair(a,b)…
题目大意:$NOIP2018\;TG\;D2T2$ 题解:在skip2004的博客基础上修改的,也是暴搜. 说明一下把vector改成数组并不可以通过此题,记录. 结论:在$m>n+1$时答案为$3(n,m)$($(n,m)$表示长$m$高$n$的矩形的答案) 发现其中判断右下角矩阵斜线全相等的部分可以优化,因为对于一条斜线,每次都搜右下角的矩阵,有很多部分都是重复搜的,完全可以每次搜只与它下面的一层比较,发现一条斜线中最多只有一个$01$交界处,于是对于这一行进行特判,少搜一个,但是注意最下面…
描述 小Hi在玩一个游戏,他需要把1, 2, 3, ... NM填入一个N行M列的矩阵中,使得矩阵每一行从左到右.每一列从上到下都是递增的. 例如如下是3x3的一种填法: 136 247 589 给定N和M,小Hi希望知道一共有多少种不同的填法. 输入 一行包含两个整数N和M. 对于60%的数据 1 <= N <= 2, 1 <= M <= 100000 对于20%的数据 N = 3, 1 <= M <= 100 对于100%的数据 1 <= N <= 3,…
方块填数 "数独"是当下炙手可热的智力游戏.一般认为它的起源是"拉丁方块",是大数学家欧拉于1783年发明的. 如图[1.jpg]所示:6x6的小格被分为6个部分(图中用不同的颜色区分),每个部分含有6个小格(以下也称为分组). 开始的时候,某些小格中已经填写了字母(ABCDEF之一).需要在所有剩下的小格中补填字母. 全部填好后,必须满足如下约束: 所填字母只允许是A,B,C,D,E,F 中的某一个. 每行的6个小格中,所填写的字母不能重复. 每列的6个小格中,所…
Description 为了提高智商,锻炼思维能力,奶牛设计了一个猜数游戏.游戏开始前,贝西会在牛棚后面摆上N个数字.所有数字排成一条直线,按次序从1到N编号.每个数字在1到10^9之间,没有两个数字是一样的. 游戏开始后,其他奶牛将会轮流询问贝西Q个问题,每个问题的格式都是一样的: “位置在Ql到Qr的数字中,最小的数字是多少?” 对每个问题,贝西都会回答一个数字A,不过,她的回答可能是不正确的.请你帮助其他奶牛判断一下,贝西从哪里开始已经出现矛盾了. Input Format 第一行:两个用…
取数游戏(TPM) 难度级别:D: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 给你一个n*n的格子的棋盘,每个格子里面有一个非负数.从中取出若干个数,使得任意的两个数所在的格子没有公共边,就是说所取的数所在的2个格子不能有公共边,并且取出的数的和最大.(二分图匹配练习) 输入 第一行是一个正整数n (n<20).接下来是 n*n 个非负数. 输出 输出可能取得的最大的和. 输入示例 35 9 48 3 62 7 1 输出示例 30 其…
1978: [BeiJing2010]取数游戏 game Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 650  Solved: 400[Submit][Status] Description 小 C 刚学了辗转相除法,正不亦乐乎,这小 P 又出来捣乱,给小 C 留了个 难题. 给 N 个数,用 a1,a2…an来表示.现在小 P 让小 C 依次取数,第一个数可以 随意取.假使目前取得 aj,下一个数取ak(k>j),则ak必须满足gcd(aj,a…
dp(x)表示前x个的最大值,  Max(x)表示含有因数x的dp最大值. 然后对第x个数a[x], 分解质因数然后dp(x) = max{Max(t)} + 1, t是x的因数且t>=L ----------------------------------------------------------------------------------------- #include<cstdio> #include<cmath> #include<cstring>…
猜数游戏由简如深的编码学习过程: 3次机会: print('------------------我爱鱼C工作室------------------')count=0while count < 3: temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:") guess = int(temp) if guess == 8: print("我草,你是小甲鱼心里的蛔虫吗?!") print("哼,猜中了也没有奖励!") break…
Java课程设计--猜数游戏(201521123111 陈伟泽) 1.团队课程设计博客链接 博客作业--猜数游戏 2.个人负责模块或任务说明 Answer:一些基础界面的构造,排行榜的构造,用文件录入用户名和实践,获取时间然后排行. 3.自己的代码提交记录截图 4.自己负责模块或任务详细说明 猜数游戏主界面应该分为三个,开始,退出,以及排行榜模块,开始游戏后要有输入输出界面.当猜中游戏后应该录入玩家名称,同时获得所用的时间,并且对所用的时间进行升序排列,输出前三名.在排行榜界面后应该还有退出按钮…
题目链接 取数游戏 思路:dp(x, y)表示先手在区间[x, y]能取得的最大分数.当先手取完,就轮到后手去,后手一定会选择当前能令他得到最大分数的策略,其实当先手在[x, y]区间两端取走一个数,那么后手面临两个状态[x+1, y]和[x, y-1],先手想要取得最大值,一定会想让后手取这两种状态中的较小值,设[x, y]区间的数字和为sum,转移方程就是dp(x, y) = max{sum - dp(x+1, y), dp(x, y-1)}.边界就是只有一个数的时候,即x==y. 关于博弈…
` 之前讲解了从scratch到python,基于python turtle库的实现,讲解了用scratch和python turtle绘图的实现,以及让小猫动起来和当角色被单击的例子. 本节课讲继续探索从scratch到python的道路,以猜数游戏为进行讲解. 概述 猜数游戏是一个很经典的例子,要开发一个完整的猜数游戏,需要用到编程中的变量.循环.分支,获取用户输入等基本知识,还要对逻辑运算有一定的了解. 本文将会带领大家实现这样一个小游戏,游戏开始后,让用户猜数字,如果数字大于或者小于目标…
快速排序:通过一趟排序,将数据分为两部分,其中一部分中的所有数据比另外一部分的所有数据要小,然后按照此方法,分别对这两部分进行排序,达到最终的排序结果. 每趟排序选取基准元素,比该基准元素大的数据放在一边,比该基准元素小的数据放在另一边,这种处理方式称为分治法. 数据的移动是基准元素中比较重要的点,有两种方式实现,挖坑填数法和指针交换法. 挖坑填数法 (下图中单词有两处拼写错误,pviot和pvoit应该为pivot) 如下为代码实现 import java.util.Arrays; publi…
参考:题解 P3813 [[FJOI2017]矩阵填数] 题目大意: 给定一个 h∗w 的矩阵,矩阵的行编号从上到下依次为 1...h ,列编号从左到右依次 1...w . 在这个矩阵中你需要在每个格子中填入 1...m 中的某个数. 给这个矩阵填数的时候有一些限制,给定 n个该矩阵的子矩阵,以及该子矩阵的最大值 v ,要求你所填的方案满足该子矩阵的最大值为 v . 现在,你的任务是求出有多少种填数的方案满足 n 个限制. 两种方案是不一样的当且仅当两个方案至少存在一个格子上有不同的数.由于答案…
填数字游戏 时间限制(普通/Java):1000MS/10000MS     运行内存限制:65536KByte 描述 有个小游戏,让你填写以下方框,要求: a1+a2+a3+M=b1+b2+b3+M=c1+c2+c3+M 其中a1,a2, a3 ,b1, b2, b3, c1, c2, c3, M是1-10中的一个数,并且要求a1.a2.a3递增有序,b1.b2.b3递增有序.c1.c2.c3递增有序,a1.b1.c1递增有序. 输入 无 输出 输出的格式如下: M a1 a2 a3 b1 b…
[BZOJ1594][Usaco2008 Jan]猜数游戏 Description 为了提高自己低得可怜的智商,奶牛们设计了一个新的猜数游戏,来锻炼她们的逻辑推理能力. 游戏开始前,一头指定的奶牛会在牛棚后面摆N(1 <= N<= 1,000,000)堆干草,每堆有若干捆,并且没有哪两堆中的草一样多.所有草堆排成一条直线,从左到右依次按1..N编号,每堆中草的捆数在1..1,000,000,000之间. 然后,游戏开始.另一头参与游戏的奶牛会问那头摆干草的奶牛 Q(1 <= Q <…
矩阵填数 Time Limit: 10 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description 给定一个 h*w 的矩阵,矩阵的行编号从上到下依次为 1..h,列编号从左到右依次1..w. 在这个矩阵中你需要在每个格子中填入 1..m 中的某个数. 给这个矩阵填数的时候有一些限制,给定 n 个该矩阵的子矩阵,以及该子矩阵的最大值 v,要求你所填的方案满足该子矩阵的最大值为 v. 现在,你的任务是求出有多少种填数的方案满足 n…
Description 为了提高自己低得可怜的智商,奶牛们设计了一个新的猜数游戏,来锻炼她们的逻辑推理能力. 游戏开始前,一头指定的奶牛会在牛棚后面摆N(1 <= N<= 1,000,000)堆干草,每堆有若干捆,并且没有哪两堆中的草一样多.所有草堆排成一条直线,从左到右依次按1..N编号,每堆中草的捆数在1..1,000,000,000之间. 然后,游戏开始.另一头参与游戏的奶牛会问那头摆干草的奶牛 Q(1 <= Q <= 25,000)个问题,问题的格式如下: 编号为Ql..Q…