11.2_二日总结

Day3
T1
是个模拟,阿拉伯数字转罗马数字,最开始发现信息很多毫无头绪,整理了一下把情况化简了。
berry大佬说得很对,应该从“罗马人的角度”想,就是说怎样是最简单自然的方式,就是十进制拆分了。

(为了方便LY的某些人查到我)
代码
自认为还是挺短的。

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int num[10]={0,1,11,111,21,2,12,112,1112,31};//反过来 
////////////1   5   10  50  100 500 1000 
char c[14]={'I','V','X','L','C','D','M','i','v','x','l','c','d','m'};
int st[3][6]={{0,2,4,6,9,11},
             {1,3,5,8,10,12},
             {2,4,6,9,11,13}},cnt=0,T;
char ans[1000];
int main()
{
    scanf("%d",&T);
    while(T--)
    {   
        cnt=0;
        int x; scanf("%d",&x);
        while(x>=1000000)
        {
            ans[cnt++]=c[13];
            x-= 1000000;
        }
        for(int y=100000,i=5;y>0&&i>=0;y/=10,i--)
        {
            if(x>=y)
            {       
                int w=x/y;
                for(int j=num[w];j;j/=10)
                {
                    int val=j%10; val--;
                    ans[cnt++]=c[st[val][i]];
                }
                x=x-y*w;
            }

        }
        for(int i=0;i<cnt;i++)
        printf("%c",ans[i]); printf("\n");
    }

    return 0;
}

T2
其实都能想到大体思路,就看有没有继续想下去。
对于这样看似不可处理的情况(方案数太大了,没法存下来),先不要就此放弃,思考的应是,我们要拿这个做什么,有什么可以代替它用途的方式。
于是,因为k<=1e8,又只需和k比较,那么当方案数大于k时就赋成inf=1e18+1 即可。

T3
很棒的容斥,新技能get。还有个补集转化思想。
由于有严格拓扑关系,所以可以按拓扑序一起处理。

我没有想到的地方是 预处理不需要跑每个数,因为其实只与有多少个1有关。这样就很好求了。
就是: n太大,m比较小 -> 补集转化 ->全集怎么算 ->特殊到一般 ->1的位数相同的相同 ->剩下的容斥->有拓扑关系->(想成一个图上问题)->得解

Day4
T1
DAG! 自己yy出了DAG的情况,苦想环怎么处理想了一个小时,最后决定乱搞。
要学习敢于乱搞的精神。

T2
模拟,主要是倒着想。

T3
好题。但我想了好久没想到,主要是好久都没有做过这类型的题。
把期望分部分求,列出表示的式子,移项,化简,观察他有什么意义。
注意这类题,用未知量表示未知量,再移项,是常见的处理。


还是觉得千万不要轻易放弃思路,有时觉得没法处理,实际上只是因为思维固化了,
最重要的是从题目要求出发,要想想这个量在这个过程中起作用的部分,那么剩下的部分就可以剪掉或优化。
大部分转化都是这么回事。

然后从特殊到一般的思想,其实还是尽量的简化思路。


最后一句话,也没有什么话可说了:
对于今天LY某些人,采用这种极其幼稚的行为,只能说太闲了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值