情之所至,甘之如饴

潜水一段时间,最近终于要开始写一写了呢。

七八月份发生了许多大事,对于竞赛生们来说,一件非常令人高兴的事情,莫过于今年五大国际学科竞赛中国队均取得了优异成绩。在IMO中,中国队重新登上世界巅峰,取得了团体总分并列第一的傲人成绩,扬眉吐气!

从国际形势来看,大国博弈更是风云乍起。同时这也预示着,在接下来的10-20年间,重视数学、物理、化学、生物等基础科学者,将行稳致远。于是今天就来写一写数学。

心之力

毛泽东

宇宙即我心,我心即宇宙。细微至发梢,宏大至天地。世界、宇宙乃至万物皆为思维心力所驱使。

博古观今,尤知人类之所以为世间万物之灵长,实为天地间心力最致力于进化者也。

夫中华悠悠古国,人文始祖,之所以为万国文明正义道德之始作俑者,实为尘世诸国中最致力于人类自身与天地万物间精神相互养塑者也。盖神州中华,之所以为地球文明之发祥渊源,实为诸人种之最致力于人与社会与天地间公德、良知依存共和之道者也。古中华先贤道法自然,文武兼备,运筹天下,何等的挥洒自如,何等的英杰伟伦。

然天妒神州,外侵内扰,泱泱华夏,愚昧丛生,国人于邪魔强盗阴险心力渗透、攻击治下,神圣使命渐渐失忆,泱泱中华众生却败于甘愿自卑、沉沦、散弱之积弊。五千年中央神州屹立寰宇,慈润天道,德化昆仑,逐忘除魔灭盗之大道使命。待魔鬼而好生,如东郭饲狼,渐失土地于广袤。魔盗全球侵杀,血罪滔天,贪婪残暴,伪善阴险。于克己隐忍,憨良感化,如鱼肉怂恿魔盗之刀俎。 纵览千百世界万国者,以其心观其本性,如恶魔强盗者唯有西方诸国,其嗜血之恶贯满盈如非魔盗,则绝无他国可称之为魔盗。如神侠义士唯有神州中华,其中庸之尊道重德者如非神侠,则绝无他国可称之为神侠圣贤。神侠圣贤乃悟农耕生产经济之始祖,勤劳耕作,取舍有度,好生求德,修身养性,良善处世,信仰天人合一之大道。魔盗流氓乃强盗流氓劫掠杀戮之恶徒,不悟耕作,贪婪猖獗,残暴凶险,横征暴虐,敷衍游牧,笃行寄生剥削之妖道。神侠与魔盗自开天辟地以来即为死敌,神侠创建而魔盗毁灭,形同水火,势同白昼与黑夜,此乃宇宙间光明与黑暗之决断,生存与死亡之厮杀。智者断不可轻信二者平安以待。 忠奸分善恶,史实辨正邪,生杀断神魔。神魔与正邪,自古以来,角力斗争,幻化人间光明与黑暗之搏杀。为天道昭然,邪终不可胜正。古神侠稍有振作,即可灭魔除盗。切不可胆怯生畏,更不可投贼!神魔厮杀非生即死,永难消泯。故神侠终为魔盗死敌,若昏然求和必招自戕。魔盗皆以亡我为本恶,神侠当以灭魔为本义。

有德者心力难济,无德者霸拥民众所赋世权以为私势,神器私用,贪腐国贼举家富贵,万众民脂民膏皆被劫掠。则国力日衰,国力衰则国家民族之心力衰竭,内可诱发天灾兵祸,朝代更迭,官僚、商贾、农工、学者尽难免沉沦;外可诱引强盗来犯,到头来看,国贼、汉奸、军民、学生均家破人亡。近代甲午海战,八国联军……不平等诸般条约引狼入室,资敌来犯,实为召唤、鼓励诸多蛮夷强盗分食华夏之举。与蛮夷通商者使洋货泛滥,居高居奇,国人尽被盘剥,泱泱中华竟无力生产民众生活诸品。多年来世界强盗在中国多有斩获,故恶敌觊觎长存、亡我之心不死。太多国耻未雪,蛮夷、豺狼、凶魔纷沓而至,国民皆因腐败汉奸、军阀、买办所欠洋人无尽之亡国债务而自危。国债深陷,物价飞涨,民众食宿艰难,灾厄连连,何日可止?今满清鞑虏虽败,可恨国、政、经济均被愚昧独夫、洋奴把持,国民心力沉疴羸弱,蛮夷恶敌肆意分割、吞并华夏,万民为奴,国资殆尽。

若欲救民治国,虽百废待兴,惟有自强国民心力之道乃首要谋划,然民众思维心力变新、强健者是为首要之捷径!

心力变新、强健者首应破除封建、官僚之愚昧邪道,惩治卖国、汉奸、洋买办之洋奴愚众,明戒不义浮财绝善终。以国家民族之新生心力志向缔造世界仁德勇武文明之新学,新学为思想理论之基石、栋梁,新学不兴,御敌难成。

中华古国之敌皆为西方邪恶之魔盗与汉奸,万勿混淆。

力主洋务借鉴“师夷之长以制夷”之道,尽知“非我族类其心必异,非我族者其性必恶”之祖训。留学列强之同胞须警惕邪魔强盗对我正义灵魂之误导、侵扰,则各类洋奴、汉奸将无处安身,中华栋梁亦生自主自强之睿智。开设抗御蛮夷强盗杀戮预防国策,弘扬神州民众自强富国雄军壮志,恤农商并滋养工业。为抗击西方蛮夷列强剿灭中华神圣传承之奸计,执履行万国大同目标之正义道德教化优靖之使命。

夫闻“三军可夺其帅,匹夫不可夺其志”。志者,心力者也。民之志首推举国民众个性之天然强健,则国家栋梁层出不穷。数百年外侮内斗中民众个性屡被君主官僚残害之重弊,举国凡有压抑个人、违背国民个性者,罪莫大焉!故我国三纲所在必去,愚民愚治尽除,方有优塑民众强盛希冀。

自中国开埠以来,封建、洋务祸国殃民,究其缘由,而教会、资本家、君主、卖国贼四者,同为天下恶魔强盗者也。

四贼之中,尤以执掌政权之官僚最为紧要!盖国之神圣重器以民为先,决不可助长恶私贪欲窃为己用!国之中枢如有愚昧肤浅肖小之徒窃而居之,则外魔必侵,国民必衰亡。

自满清鞑虏洋务运动之后,贪墨腐败家族皆以盗取、盘剥民脂民膏逃逸海外为家族享乐之诡计。假以时日,神州中华亿民之血肉、骨髓乃至福祉将被尽数剥夺转送西方魔盗!国人如寒冬之时又堕深渊,农业落后之国民众必将沦落为亡国之奴。今无人于海内查处、治罪,于海外统计、堵截,故国贼趋之若鹜。吾辈倘若不能惩戒,又与国贼、禽兽何异?

千古圣人,教化为根。我辈恰逢此乱象当前之世,人皆逐物欲而迷心,循末节而忘真,醉娱乐轻国志,谋小私绝大利,认蛮夷做乃父,拜魔盗为师尊,毁文明于无耻。你我何必苟且偷生,熟视无睹?有志者呼吸难畅,应以天下为己任。

今愚者忘本堕渊,竟争先自掘其坟,却不思危亡之计。苟活于当下,遗失神圣之使命,忘却民族之重任;背离于真理,违逆人本之慧根,蔑毁先民之道德;醉心于享乐,不知当世之惊变,甘当媚外之洋奴;沉迷于自我,罔顾危机之四伏,轻信魔盗之谗言!故西方强盗可肆意侵杀、奴役中华。

普看当今,世界格局风云激荡,人类文明之前途扑朔渺茫,天下苍生之幸福岌岌可危。虽有科技带来物质之充足,仍难满人欲之巨壑,各派皆为私利而竞相奔走,人人皆被牵入滚滚洪流。强盗流氓制订裁决世界法律,邪恶魔鬼公然成为人间领袖,万国不思兴道义之师,竟全然拜魔盗为导师,此星球之一草一木万物生灵涂炭、灭绝之期不远矣。

虽有智者、勇者愿做中流之砥柱,却犹如闹市之人语,瀑下之鱼鸣。请问周边,还有几人执著于真理?还有几人探求于本源?一句开心就好,便甘愿随波逐流;一句事不关己,便通行四海愚夫;一句莫谈国事,便据民权为私器。孰不知天下兴亡匹夫有责?试问为天地立心何以立?为生民立命何以立?为往圣继绝学何以继?为万世开太平何以开?若我辈之人此心已无,则中华即将亡亦!中华亡则人类必亡亦!

天之力莫大于日,地之力莫大于电,人之力莫大于心。阳气发处,金石亦透,精神一到,何事不成?改朝换代,为民谋福,惩治贪墨汉奸,又有何难!苟其公忠体国,百折不回,虽布衣下士,未始无转移世运之能也。有志之士可不勉哉!人生于天地之间,形而下者曰真心实性。血肉者物质之所成,心性者先天地之所生。故而有唯物唯心之论说。人活于世间,血肉乃器具,心性为主使,神志为天道。血肉现生灭之相,心性存不变之质,一切有灵生命皆与此理不悖。盖古今所有文明之真相,皆发于心性而成于物质。德政、文学、艺术、器物乃至个人所作所为均为愿、欲、情等驱使所生。

故个人有何心性即外表为其生活,团体有何心性即外表为其事业,国家有何心性即外表为其文明,众生有何心性即外表为其业力果报。故心为形成世间器物之原力,佛曰:心生种种法生,心灭种种法灭。西方强盗宗教亦有旧约主神虐民之邪暴,后有耶稣新约爱民之改良。神魔心性之变幻如此,故世人多为耶稣所迷。耶稣明之故说忏悔,懂耻而不恶;孔子明之故说修心,知止而不怠;释迦明之故说三乘,明心而不愚;老子明之故说无为,清静而不私。心为万力之本,由内向外则可生善、可生恶、可创造、可破坏。由外向内则可染污、可牵引、可顺受、可违逆。修之以正则可造化众生,修之以邪则能涂炭生灵。心之伟力如斯,国士者不可不察。

大凡英雄豪杰之行其自己也,确立伟志,发其动力,奋发踔历,摧陷廓清,一往无前。其强大如大风之发于长合,如好色者朱之性欲发动而寻其情人,决无有能阻回之者,亦决不可有阻者。尚阻回之,则势力消失矣。吾尝观大来勇将之在战阵,有万夫莫当之概,发横之人,其力至猛,皆由其一无顾忌,其动力为直线之进行,无阻回无消失,所以至刚而至强也。众生心性本同,豪杰之精神与圣贤之精神亦然。

故当世青年之责任,在承前启后继古圣百家之所长,开放胸怀融东西文明之精粹,精研奇巧技器胜列强之产业,与时俱进应当世时局之变幻,解放思想创一代精神之文明。破教派之桎楛,汇科学之精华,树强国之楷模。正本清源,布真理与天下!愿与志同道合、追求济世、救世真理者携手共进,发此弘愿,世世不辍,贡献身心,护持正义道德。

故吾辈任重而道远,若能立此大心,聚爱成行,则此荧荧之光必点通天之亮,星星之火必成燎原之势,翻天覆地,扭转乾坤。戒海内贪腐之国贼,惩海外汉奸之子嗣;养万民农林之福祉,兴大国工业之格局;开仁武世界之先河,灭魔盗国际之基石;创中华新纪之强国,造国民千秋之福祉;兴神州万代之盛世,开全球永久之太平!也未为不可。

题意

现有一个$n$行$m$ 列的棋盘,一只马欲从棋盘的左上角跳到右下角。每一步它向右跳奇数列,且跳到本行或相邻行。跳越期间,马不能离开棋盘。例如,当$n = 3, m = 10$ 时,下图是一种可行的跳法。

img

试求跳法种数$mod\ 30011$。

解法

本题为采用矩阵速幂优化的动态规划,首先需要想出朴素的转移方程。

10pts: 朴素做法

我们用$dp[i][j]$表示超级跳马跳到$(i,j)$的总方案数,这样最终只需求出$dp[n][m]$即可。

考虑马能从什么地方跳到$(i,j)$。根据题目条件,从行和列的角度分别考虑。

首先考虑行。第$i$行,第$i+1$行和第$i-1$行都可以跳到第$i$行。

接着考虑列,只要是和第$j$列相差奇数列的列都可以跳到第$j​$列。因此

如果我们直接用朴素的循环计算,复杂度为$O(nm^2)$,只能得到10分,因此考虑在计算过程中优化。

50pts:前缀和优化

100pts:矩阵快速幂

本学期的信息技术课居然讲AI,感谢学校为我们搭建了这样好的平台,让我们能够在OI与AI的道路上齐头并进。第一节课,首先介绍了一下pip中的pillow库,以及其中的一些图像风格化的知识。

首先,我们需要在cmd(Windows)或者terminal(Linux, Mac)中输入安装pillow库的命令:

1
pip install pillow

如果是Linux或者Mac,由于默认的Python版本是Python 2,而pillow库在Python 2不可用,因此安装pillow库的命令需要改为:

1
pip3 install pillow

安装完后,我们就可以愉快地写代码啦~我尝试了一下模糊、浮雕和边缘增强三种效果QAQ

1
2
3
4
5
6
7
8
9
10
11
from PIL import Image,ImageFilter
i=Image.open('test.jpg')
# 保存+格式转换
i.save('test_converted.png','png')
# 风格化
a=i.filter(ImageFilter.BLUR)
a.save('blur.jpg','jpeg')
b=i.filter(ImageFilter.EMBOSS)
b.save('emboss.jpg','jpeg')
c=i.filter(ImageFilter.EDGE_ENHANCE_MORE)
c.save('enhance_more.jpg','jpeg')

附上测试图片一张~QwQ

用的微博图床,先这样吧~

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <string>
using namespace std;
int n,s,tot;
int a[3625],cnt;
bool pd(int a[],int n) {
for(int i=1;i<=n/2;i++)
if(a[i]!=a[n-i+1]) return false;
return true;
}
void convert(int n,int d) {
cnt=0;
while(n) {
a[++cnt]=n%d;n/=d;
}
}
int main() {
cin>>n>>s;
for(int i=s+1;;i++) {
int res=0;
for(int j=2;j<=10;j++) {
convert(i,j);
if(pd(a,cnt)) res++;
}
if(res>=2) {
printf("%d\n",i);
tot++;
}
if(tot==n) break;
}
return 0;
}

题目

题目描述

一块N x N(1<=N<=10)正方形的黑白瓦片的图案要被转换成新的正方形图案。写一个程序来找出将原始图案按照以下列转换方法转换成新图案的最小方式:

1:转90度:图案按顺时针转90度。

2:转180度:图案按顺时针转180度。

3:转270度:图案按顺时针转270度。

4:反射:图案在水平方向翻转(以中央铅垂线为中心形成原图案的镜像)。

5:组合:图案在水平方向翻转,然后再按照1到3之间的一种再次转换。

6:不改变:原图案不改变。

7:无效转换:无法用以上方法得到新图案。

如果有多种可用的转换方法,请选择序号最小的那个。

只使用1—7中的一个步骤来完成这次转换。

输入输出格式

输入格式:

第一行: 单独的一个整数N。

第二行到第N+1行: N行每行N个字符(不是“@”就是“-”);这是转换前的正方形。

第N+2行到第2*N+1行: N行每行N个字符(不是“@”就是“-”);这是转换后的正方形。

输出格式:

单独的一行包括1到7之间的一个数字(在上文已描述)表明需要将转换前的正方形变为转换后的正方形的转换方法。

输入输出样例

输入样例#1:

1
2
3
4
5
6
7
3
@-@
---
@@-
@-@
@--
--@

输出样例#1:

1
1

代码

一道纯模拟的好题。考察的就是是否细心。

写了100+行,应该……还算清晰明了吧。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <cstring>

using namespace std;
const int maxn=15;
int n;
char a[maxn][maxn],b[maxn][maxn],t[maxn][maxn];
bool check(char a[15][15],char b[15][15]) {
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(b[i][j]!=a[i][j])
return false;
return true;
}
void clear() {
memset(t,0,sizeof(t));
}
void Get_Data() {
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>a[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>b[i][j];
}
void debug(char a[15][15]) {
for(int i=1;i<=n;i++) {
for(int j=1;j<=n;j++) {
cout<<a[i][j]<<' ';
}
cout<<endl;
}
}
void c1() {
clear();
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
t[j][n-i+1]=a[i][j];
//debug(t);
if(check(b,t)) {cout<<1;exit(0);}
}
void c2() {
clear();
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
t[n-i+1][n-j+1]=a[i][j];
//debug(t);
if(check(b,t)) {cout<<2;exit(0);}
}
void c3() {
clear();
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
t[n-j+1][i]=a[i][j];
//debug(t);
if(check(b,t)) {cout<<3;exit(0);}
}
void c4() {
clear();
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
t[i][j]=a[i][n-j+1];
//debug(t);
if(check(b,t)) {cout<<4;exit(0);}
}
void c5() {
bool ok=false;
clear();
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
t[i][j]=a[i][n-j+1];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
a[i][j]=t[i][j];
//Try C1
clear();
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
t[j][n-i+1]=a[i][j];
if(check(b,t)) ok=true;
//Try C2
clear();
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
t[n-i+1][n-j+1]=a[i][j];
if(check(b,t)) ok=true;
//Try C3
clear();
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
t[n-j+1][i]=a[i][j];
if(check(b,t)) ok=true;
if(ok) {cout<<5;exit(0);}
}
void c6() {
if(check(a,b)) {cout<<6;exit(0);}
}
int main() {
Get_Data();
c1();c2();c3();c4();c5();c6();
cout<<7;
return 0;
}



本站使用 Material-X 作为主题 , 总访问量为 次 。
载入天数...载入时分秒... 字数统计:726.4k