学习第七天(揭露进入NOI的特殊方法)

???

为什么上来就有三个问号?
这也说明今天的不同
标题你们也看了
没错
我们就是要来讲讲省选落选,怎么进NOI。
声明:以下事件没有任何批判的意思,只是阐述事实
之前看到NOI的参赛选手分为ABCD四类
于是就好奇这四类有什么区别
于是上网搜了一下,找到如下结果:
搜索结果

很明显,我被右下角的回复给吸引了
没办法,我是个穷鬼,这个W一开始还是震到我了
于是我开始调查
在官网上找到了CD类名额分配方案的文件,但其中C类的规定比较模糊:
C类名额分配办法

什么算巨大贡献呢?
给CCF捐献10W,好像的确是个重大的贡献
似乎名正言顺
而且有如下一个条款:
条款

所以还是要缴费的
但是具体是多少并没有提到。
但我紧接着就发现D类名单上有一个我认识的人,于是果断的问他:
真是对话

出于保护隐私,该糊的都糊掉了
这么一看的确是坐实了
既然D类是2W,那么我觉得那个10W恐怕也是真的。

当然,这并没有什么黑暗的东西,其实透明度还是很好的
虽然价格不菲,但的确为大家提供了一个途径,而且CCF也不容易,毕竟不是一个盈利性的组织。
反正我是没机会了,今年就要AFO了
祝你们好运!

信息学

第一题:寻找主人

这一题很水,直接用最小表示法即可
寻找主人题解

我就不另讲了
代码如下:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=1000005;
char a[maxn],b[maxn];
//int n;
int getmin(char* c){
    int n=strlen(c);
    int i=0,k=0;
    int j=1;
    while(i<n&&j<n){
        if(c[i]<c[j]){
            j++;
        }else if(c[i]>c[j]){
            i=j++;
        }else{
            for(k=1;k<n;k++){
                if(c[(i+k)%n]<c[(j+k)%n]){
                    j=(j+k+1);
                    break; 
                }else if(c[(i+k)%n]>c[(j+k)%n]){
                    i=j;
                    j=(j+k+1);
                    break;
                }
            }
        }
    }
    return min(i,j);
}
int main(){
    scanf("%s%s",a,b);
    int aa=getmin(a);
    int bb=getmin(b);
    int n=strlen(a);
    for(int i=0;i<n;i++){
        if(a[(aa+i)%n]!=b[(bb+i)%n]){
            printf("No");
            return 0;
        }
    }
    printf("Yes\n");
    for(int i=0;i<n;i++){
        printf("%c",a[(aa+i)%n]);
    }

    return 0;
} 

第二题:Tab

这道题,哇,波兰的
好像也就一条有趣的性质就能解决
那就是无论怎么变换
原来在同一行的,变换后还在同一行
原来在同一列的,变换后还在同一列
而且,请注意,元素各不相同!!!
(我一开始没有看见,折腾了一会)
所以我们对于第一个矩阵,记录他的每一个元素的位置
然后读入第二个矩阵的时候判断即可
代码如下:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int T,n,m;
int visx[2000005],visy[2000005];
int a[1005][1005];
int b;
const int maxn=1000000;
int main(){
    scanf("%d",&T);
    while(T--){
        scanf("%d%d",&n,&m);
        memset(visx,-1,sizeof(visx));
        memset(visy,-1,sizeof(visy));
        bool jud=true;
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                scanf("%d",&b);
                visx[b+maxn]=i;
                visy[b+maxn]=j;
            }
        }
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                scanf("%d",&a[i][j]);
                if(visx[a[i][j]+maxn]==-1||visy[a[i][j]+maxn]==-1){
                    jud=false;
                }else if(visx[a[i][j]+maxn]!=visx[a[i][0]+maxn]||visy[a[i][j]+maxn]!=visy[a[0][j]+maxn]){
                    jud=false;
                }
            }
        }
        if(jud){
            printf("TAK\n");
        }else{
            printf("NIE\n");
        }


    }
    return 0;
} 

第三题:嘿嘿嘿,明天继续

物理

找了去年清华的夏令营卷子做了一下,感觉还可以

数学

今天,把昨天的卷子简单订正了一下
然后就开始愉快的刷题了
在刷数学的时候,有了自己的一些感想
其实有时候刷题要比思考简单的多
事实上,思考有时是很难受的
而刷题不需要思考
所以有时候刷题也会感觉到快乐
但也不能刷题过多
因为总会有迷茫的那一天

总结

没错,我又把面试给忘了
呵呵
明日复明日,明日何其多
既然明天这么多,那么我们花费一个明天来做这个事,应该可以吧?
明天加油。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值