学习第七天(揭露进入NOI的特殊方法)
原创
©著作权归作者所有:来自51CTO博客作者Java大神的原创作品,请联系作者获取转载授权,否则将追究法律责任
???
为什么上来就有三个问号?
这也说明今天的不同
标题你们也看了
没错
我们就是要来讲讲省选落选,怎么进NOI。
声明:以下事件没有任何批判的意思,只是阐述事实
之前看到NOI的参赛选手分为ABCD四类
于是就好奇这四类有什么区别
于是上网搜了一下,找到如下结果:
很明显,我被右下角的回复给吸引了
没办法,我是个穷鬼,这个W一开始还是震到我了
于是我开始调查
在官网上找到了CD类名额分配方案的文件,但其中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;
}
第三题:嘿嘿嘿,明天继续
物理
找了去年清华的夏令营卷子做了一下,感觉还可以
数学
今天,把昨天的卷子简单订正了一下
然后就开始愉快的刷题了
在刷数学的时候,有了自己的一些感想
其实有时候刷题要比思考简单的多
事实上,思考有时是很难受的
而刷题不需要思考
所以有时候刷题也会感觉到快乐
但也不能刷题过多
因为总会有迷茫的那一天
总结
没错,我又把面试给忘了
呵呵
明日复明日,明日何其多
既然明天这么多,那么我们花费一个明天来做这个事,应该可以吧?
明天加油。