信息学奥赛普及组复赛真题(1)记数问题题目描述试计算在区间1到n的所有整数中,数字x(0≤x≤9)共出现了多少次?例如,在1到11中,即在1、2、3、4、5、6、7、8、9、10、11中,数字1出现了4次。输入格式输入共1行,包含2个整数n、x,之间用一个空格隔开。输出格式输出共1行,包含一个整数,表示x出现的次数。样例输入111样例输出4注释对于100%的数据,1≤n≤1,000,000,0≤x≤9。(2)统计单词数题目描述一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同(参见样例1),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例2)。【数据范围】1≤单词长度≤10。1≤文章长度≤1,000,000。【输入输出样例1说明】输出结果表示给定的单词To在文章中出现两次,第一次出现的位置为0。【输入输出样例2说明】表示给定的单词to在文章中没有出现,输出整数-1。输入格式第1行为一个字符串,其中只含字母,表示给定单词;第2行为一个字符串,其中只可能包含字母和空格,表示给定的文章。输出格式只有一行,如果在文章中找到给定单词则输出两个整数,两个整数之间用一个空格隔开,分别是单词在文章中出现的次数和第一次出现的位置(即在文章中第一次出现时,单词首字母在文章中的位置,位置从0开始);如果单词在文章中没有出现,则直接输出一个整数-1。样例输入样例1Totobeornottobeisaquestion样例2toDidtheOttomanEmpireloseitspoweratthattime样例输出样例120样例2-1(3)表达式的值题目描述对于1位二进制变量定义两种运算:运算符运算规则⊕0⊕0=00⊕1=11⊕0=11⊕1=1×0×0=00×1=01×0=01×1=1运算的优先级是:1.先计算括号内的,再计算括号外的。2.“×”运算优先于“⊕”运算,即计算表达式时,先计算×运算,再计算⊕运算。例如:计算表达式A⊕B×C时,先计算B×C,其结果再与A做⊕运算。现给定一个未完成的表达式,例如_+(_*_),请你在横线处填入数字0或者1,请问有多少种填法可以使得表达式的值为0。【输入输出样例说明】给定的表达式包括横线字符之后为:_+(_*_)在横线位置填入(0、0、0)、(0、1、0)、(0、0、1)时,表达式的值均为0,所以共有3种填法。【数据范围】对于20%的数据有0≤L≤10。对于50%的数据有0≤L≤1,000。对于70%的数据有0≤L≤10,000。对于100%的数据有0≤L≤100,000。对于50%的数据输入表达式中不含括号。输入格式第1行为一个整数L,表示给定的表达式中除去横线外的运算符和括号的个数。第2行为一个字符串包含L个字符,其中只包含’(’、’)’、’+’、’*’这4种字符,其中’(’、’)’是左右括号,’+’、’*’分别表示前面定义的运算符“⊕”和“×”。这行字符按顺序给出了给定表达式中除去变量外的运算符和括号。输出格式包含一个整数,即所有的方案数。注意:这个数可能会很大,请输出方案数对10007取模后的结果。样例输入4+(*)样例输出3(4)金币问题1.金币(coin.cpp/c/pas)【问题描述】国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币。请计算在前K天里,骑士一共获得了多少金币。【输入格式】输入文件名为coin.in。6输入文件只有1行,包含一个正整数K,表示发放金币的天数。【输出格式】输出文件名为coin.out。14输出文件只有1行,包含一个正整数,即骑士收到的金币数。【输入输出样例1说明】骑士第一天收到一枚金币;第二天和第三天,每天收到两枚金币;第四、五、六天,每天收到三枚金币。因此一共收到1+2+2+3+3+3=14枚金币。【数据范围】对于100%的数据,1≤K≤10,000。