HDU 2896 病毒侵袭

二次联通门 : HDU 2896 病毒侵袭

 

 

 

 

 

/*
    HDU    2896 病毒侵袭

    AC自动机
    
    此题太坑啦。。。 

    用G++交会无限MLE
    行尾不输出回车会无限WA。。
    
    写的程序没错
    却交了N遍。。 
*/
#include <cstring>
#include <cstdio>
#include <queue>

#define Max 100090

void read (int &now)
{
    now = 0;
    register char word = getchar ();
    while (word < '0' || word > '9')
        word = getchar ();
    while (word >= '0' && word <= '9')
    {
        now = now * 10 + word - '0';
        word = getchar ();
    }
}


struct T_D
{
    T_D *child[133];
    
    T_D *Fail;
    
    int number;

    T_D ()
    {
        for (int i = 0; i < 133; i ++)
            this->child[i] = NULL;
        Fail = NULL;
        
        number = 0;
    }
};

bool visit[Max / 50];
T_D *Root;

int Number;

int Print_Count;
int N, M;

class AC_Type
{

    private :
        
        int __Count_;
        
    public :
        
        AC_Type ()
        {
            __Count_ = 0;
        }
        
        void Insert (char *key)
        {
            T_D *now = Root, *pos;
            
            int Len = strlen (key);
            int Id;
            
            for (int i = 0; i < Len; i ++)
            {
                Id = key[i];
                if (now->child[Id] == NULL)
                    now->child[Id] = new T_D;
                now = now->child[Id];
            } 
            now->number = ++ __Count_;
        }
        
        void Build_AC ()
        {
            std :: queue <T_D *> Queue;
            Queue.push (Root);
            T_D *now, *pos;
            
            while (!Queue.empty ())
            {
                now = Queue.front ();
                Queue.pop ();
                pos = NULL;
                
                for (int i = 0; i < 133; i ++)
                {
                    if (now->child[i] == NULL)
                        continue;
                    if (now == Root)
                        now->child[i]->Fail = Root;
                    else
                    {
                        for (pos = now->Fail; pos; pos = pos->Fail)
                            if (pos->child[i])
                            {
                                now->child[i]->Fail = pos->child[i];
                                break;
                            }
                    }
                    Queue.push (now->child[i]); 
                }
            } 
        }
        
        void Query (char *key)
        {
            T_D *now = Root, *pos;
            
            int Len = strlen (key);
            int Id;
            
            bool flag = false;
            for (int i = 0; i < Len; i ++)
            {
                Id = key[i];
                for (; now != Root && now->child[Id] == NULL; now = now->Fail);
                now = now->child[Id];
                now = !now ? Root : now;
                for (pos = now; pos != Root; pos = pos->Fail)
                {
                    if (pos->number > 0)
                        flag = true;
                    visit[pos->number] = true;
                }
            }
            if (flag)
                Print ();
        }
        
        void Print ()
        {
            printf ("web %d:", Number);
            visit[0] = false;
            Print_Count ++;
            for (int i = 1; i <= N; i ++)
                if (visit[i])
                {
                    printf (" %d", i);
                    visit[i] = false;
                }
            putchar ('\n');
        }
        
};

AC_Type Make;

char line[Max];

int main (int argc, char *argv[])
{
    Root = new T_D ;
    read (N);
    for (int i = 1; i <= N; i ++)
    {
        scanf ("%s", line);
        Make.Insert (line); 
    }
    Make.Build_AC (); 
    read (M);
    for (int i = 1; i <= M; i ++)
    {
        scanf ("%s", line);
        Number = i;
        Make.Query (line); 
    }
    printf ("total: %d\n", Print_Count);
    return 0;
}

 

转载于:https://www.cnblogs.com/ZlycerQan/p/6979935.html

内容概要:《2024年印尼税收袖珍指南》由普华永道发布,涵盖了印尼税收体系的关键方面。主要内容包括企业所得税、个人所得税、预提税、国际税收协定、增值税、奢侈品销售税、碳税、关税与消费税、税收优惠、地方税、印花税、税务会计、税务稽查与评估、强制执行征税、税务纠纷与处理等。企业所得税税率一般为22%,特定条件可享受优惠。个人所得税采用超额累进税率,最高达35%。预提税涵盖多种收入类型,如工资、利息、股息等。国际税收协定帮助避免双重征税,提供优惠税率。增值税标准税率为11%,部分商品和服务免征。税收优惠包括免税期、加计扣除等,尤其针对特定行业和地区。地方税种类繁多,如土地与建筑物税、机动车税等。税务稽查与评估确保纳税人合规,税务纠纷可通过异议、申诉、诉讼等方式解决。 适用人群:企业财务人员、税务顾问、跨国公司税务部门、个人纳税人等。 使用场景及目标:①帮助企业理解和遵守印尼税法,优化税务规划;②协助个人纳税人正确申报各类税项;③为税务顾问提供最新税收政策信息,提升专业服务水平;④为跨国公司处理跨境税务问题提供指导。 阅读建议:此指南内容详尽,建议读者根据自身需求重点阅读相关章节,结合实际案例深入理解各项规定,并关注最新政策动态,确保税务处理合法合规。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值