您的位置:首页 > 其它

2016.08.19上午【初中部 NOIP普及组 】模拟赛题解

2016-09-02 18:46 316 查看
T1:

第一题就是一个勾股定理,枚举两条边超时,于是枚举一条,第二条符合数可以算出来。

T2:

  第二题就是广搜,提前预存好符号四个方向的可通性,广搜即可。如果只有一个*也要输出1.

T3:


         
第三题是我小学时做了很久也没A的题目,考场居然差一点点就A了。


            其实就是初学的内容。枚举数字的位置(全排列),枚举3个符号,然后枚举括号,括号为

            1  2  3  4

         1  (    ) (     )

         2  (       )

         3     (        )

            然后先按照括号运算括号里的,按照从左到右的顺序运算(不理乘除优先),8个for吧。

T4:

        第四题为状压DP,少不了位运算。

            大家需要知道几个知识:

            xor:异或,同为0,否则为1。

            and:和,两个为一则为1,反之为0.

            or:有1则1,反之则0.

   设f[i,j]表示走到j这个点的状态为i(二进制表示,1为走)。很容易想到了转移!

等等,还没讲完。还要枚举从第K的状态递推过来。然后并不是所有的K都能递推。要判断j,k是否相同,然后再判断一下是否可走,走过没有,即满足:

i and (1 shl (j-1))=1 shl (j-1)

i and (1 shl (k-1))=1 shl (k-1)

可化简为

i or (1 shl (j-1))=i

i or (1 shl (k-1))=i

然后转移。

一个是走,一个不走。

走的话搞一下状态,加上一个数。

最后输出即可。

max:=maxlongint;
for i:=1 to n do
if f[i,c
-1]<max then max:=f[i,c
-1];
今天的题目满满的套路满满的粗心,争取普及AK!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: