17.9.2B组总结

17.9.2B组总结

特别尴尬。。。所有人都第一,那么努力就没用了。

T1

类似最大生成树的kruskal构造法,用并查集搞一搞就好了(将每一个联通块标记是敌人或不是敌人,连上时判断一下是否可连,如不可就更新答案)。
主代码:

begin
        readln(n,k);
        for i:=1 to k do
        begin
                read(x);
                bz[x]:=1;
        end;
        for i:=0 to n-1 do
                f[i]:=i;
        readln;
        for i:=1 to n-1 do
                readln(a[i,1],a[i,2],a[i,3]);
        kp(1,n-1);
        for i:=1 to n-1 do
        begin
                x:=get(a[i,1]);
                y:=get(a[i,2]);
                if (bz[x]=1)and(bz[y]=1) then
                        inc(ans,a[i,3])
                else
                begin
                        if bz[x]=1 then
                                bz[y]:=1;
                        f[x]:=y;
                end;
        end;
        writeln(ans);
        //writeln(chr(26));(完全无卵用,数据坑)
end.

T2

考试想到暴力可以过,正当我得意之时被题目描述结结实实地坑了一把······
首先注意第一行是原文转密文的字母,但输出时却应该是密文转原文,话说数据也太水了吧,这么大的一个错误居然还能拿47.1。
暴力过程:

        l:=length(s);
        for i:=(l-1) div 2+1 to l-1 do
        begin
                bz:=1;
                for j:=1 to l-i do
                begin
                        if s[j]<>a[s[j+i]] then
                        begin
                                bz:=0;
                                break;
                        end;
                end;
                if bz=1 then
                begin
                        for j:=1 to i do
                                write(s[j]);
                        for j:=1 to i do
                                write(b[s[j]]);
                        writeln;
                        //writeln(#26);(照例不用管)
                        halt;
                end;
        end;

T3

略显尴尬的一题,有各种千奇百怪的“情况说”,不过大致只有这几种:
这里写图片描述
设f[i,j,1/0]表示已经做了前i行,分为j块田地,当前第i行是否分成了两个区域,然后方程就是:

        f[i,j,0]:=(f[i,j,0]+(f[i-1,j-1,0]+f[i-1,j-1,1])*2+f[i-1,j-2,0]+f[i-1,j-2,1]+f[i-1,j,0]) mod mo;
        f[i,j,1]:=(f[i,j,1]+f[i-1,j,0]*2+f[i-1,j,1]+f[i-1,j-1,0]+f[i-1,j-1,1]) mod mo;

最后答案就是(f[n,k,0]+f[n,k,1]) mod mo。
注意mo= 108+7 ,不是 109+7

近期总结

这次开学语数英没考好,这学期要努力了!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值