【EOJ Monthly 2018.12 - A,B,C】套题训练,部分题解

A.

题干:

A. 仰望星空

单测试点时限: 2.0 秒

内存限制: 512 MB

你就这样静坐在草地上,离我稍远的地方。
我用眼角瞅着你,你什么话也别说。
语言是误会的根源。
但是,每天,你可以坐得离我近一些……

你和她一起仰头仰望着布满星辰的天空。你的星星对她而言只不过是众星中的一颗。

她会喜欢仰望天际所有的繁星,他们都会是她的朋友。但你深信你不会是万众中一颗毫不起眼的星星。

于是你默默地记录着每天你们仰望星空时的距离,你发现每天你们的距离或许减少、或许不变,但一定不会增加。

可是你们在一起仰望星空的日子太长了,长到你只记得你们第一天在星空下的距离。

今天,你们的距离是 A ;你们又在一起仰望星空了。你却突然想知道一起仰望星空 N 天来,你们之间的距离之和。

由于你已经不记得每天的距离,只能依稀记起第一天的距离是 B ,所以你只想知道你们这么多天来的距离之和有多少种不同的可能性。

输入

输入数据包含一行,包含三个整数 N,A,B (2≤N≤109,1≤A≤B≤109 ),分别表示你们一起仰望星空的天数、今天你们之间的距离以及第一天你们之间的距离。

输出

输出数据包含一行一个整数,表示不同可能和的个数。

样例

Input

3 1 2

Output

2

提示

对于样例有以下几种不同的距离情况:{2,1,1},{2,2,1} ;他们的和分别是 4 和 5 ,所以有两种不同的和。

解题报告:

  不算思维的思维题啊,,贪心出最大的可能取值和最小的可能取值就行了。

AC代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define ll long long
#define pb push_back
#define pm make_pair
#define fi first
#define se second
using namespace std;
const int MAX = 2e5 + 5;
ll n,a,b;
int main()
{cin>>n>>a>>b;ll minn = a*(n-1) + b;ll maxx = a + b*(n-1);printf("%lld\n",maxx-minn+1);return 0 ;}

(不少人没开longlong所以WA??)

 


B.

  好像是蒙特卡洛模拟,,据说随机数也能过。。明天补补吧。。


C.

题干:

C. 她的名字

单测试点时限: 4.0 秒

内存限制: 512 MB

“他走过一个又一个星球,
却始终放不下对她的思念。“
”深情终究是一趟孤独的旅程,
她是他永远的牵绊。”

我们每个人心中都有一只小狐狸。我们渴望被自己喜欢的人驯服。

爱情是彼此之间至为甜蜜的臣服。我们都是傻痴痴的小狐狸,徒具一副精明的外表。

就像你走到哪都挂念着她,想把她写进自己的歌里,成为你们共同的记忆。

你想从她全部由数字构成的名字里取出其中的 N 个数字,维持原来的顺序,组成结尾为数字 XY 的新词。

你自然希望自己的歌能够很长很长,歌词的每一句都能饱含甜蜜。

所以你想知道,她的名字能够组成多少个长度为 N 且结尾为数字 XY 的新词(如果从她名字中取出的任意一个数字位置不同,两个词就被认为是不同的)。

输入

第一行包含一个由数字构成的字符串 S (1≤|S|≤2 000 )。

第二行包含一个整数 Q (1≤Q≤5⋅105 ),表示需要选择的不同结尾数量。

接下来的 Q 行,每行包含了一个整数 N (1≤N≤5⋅105 ) 和两个数字 XY ,用空格隔开,表示需要选择的歌词的长度和结尾。

输出

对于每一个询问,输出一个整数,表示答案。

答案可能会很大,你只需要输出对于 109+7 取模后的结果。

样例

Input

312121
4
2 21
3 31
4 22
3 22

Output

3
0
1
2

提示

样例中第一个询问:312121, 312121, 312121.

第二个询问:无。

第三个询问:312121.

解题报告:

   就是个dp[i][j][k],,两边预处理,,第一遍出状态的个数,第二遍出答案,然后O(1)输出就行了。

AC代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define ll long long
#define pb push_back
#define pm make_pair
#define fi first
#define se second
using namespace std;
const int MAX = 2e5 + 5;
const ll mod = 1e9 + 7;
int q;
char s[MAX];
ll dp[12][12][4005],qq[12][12],yong[12][12][4005];
ll C[2005][2005];
void init() {C[0][0]=1;for(int i=1; i<=2001; i++) {C[i][0]=1;for(int j=1; j<=i; j++) {C[i][j]=(C[i-1][j-1]+C[i-1][j])%mod;}}
}
int main()
{init();cin>>(s+1);int n = strlen(s+1);if(n == 1) {int q,len,x,y;scanf("%d",&q);while(q--) {scanf("%d",&len);scanf("%1d%1d",&x,&y);printf("0\n");} return 0 ;}for(int i = 1; i<=n; i++) {for(int j = i+1; j<=n; j++) {dp[s[i]-'0'][s[j]-'0'][i-1]++;dp[s[i]-'0'][s[j]-'0'][i-1]%=mod;qq[s[i]-'0'][s[j]-'0'] = (qq[s[i]-'0'][s[j]-'0'] + 1) % mod;//以ij为尾的数有多少种. }}for(int x = 0; x<=9; x++) {for(int y = 0; y<=9; y++) {for(int i = 0; i<=n; i++) {//记录直接用 for(int j = i; j<=n; j++)yong[x][y][i] += (C[j][i] * dp[x][y][j])%mod;}}}cin>>q;int x,y,len;while(q--) {scanf("%d",&len);len-=2;scanf("%1d%1d",&x,&y);if(len+2 > n) {puts("0");continue;}if(len == 0) {printf("%lld\n",qq[x][y]%mod); continue;}if(len < 0) {puts("0");continue;}printf("%lld\n",yong[x][y][len]%mod);}return 0 ;}

注意N给到了1e5,,所以需要特判一波是否大于字符串长度,如果大于了直接输出0就行了,不然肯定RE啊,,

不过据说这题标解不是n^2*100的做法的。。改天再想想、、

这题WYZ大佬还有个别的做法,,从后往前 枚举每一个X,同时记录Y的个数,然后输出答案同时记录,因为查询次数过多,,肯定有重复查询,所以类似记忆化搜索那样记录答案,,貌似也过了。Orz


DEF不会,,其实E还可以做做的,,然后F是个SAM好像是,,目前也不会。

总之这场比赛写题半小时挂机一个半小时,,题目跨度忒大了点。。两题后就没可做题了。。可能还是苔菜了吧。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/441052.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php百度搜索框代码,基于jquery的仿百度搜索框效果代码_jquery

先看看整个的效果图&#xff1a;图一&#xff1a;图二&#xff1a;图三&#xff1a;图四&#xff1a;大概的效果图就这样&#xff0c;接下来直接看源码页面&#xff1a;CSS&#xff1a;.autoSearchText{border:solid 1px #CFCFCF;height:20px;color:Gray;}.menu_v{margin:0;pad…

matlab大作业题题单,2011MATLAB大作业-题目-

(1)求解线性规划问题&#xff1a;minZ 4x1 x2 7x3s.t.x1 x2 x3 53x1 x2 x3 4x1 x2 4x3 7x1,x2 0问各xi分别取何值时&#xff0c;Z有何极小值。(2)编写一个函数&#xff0c;使其能够产生如下的分段函数&#xff1a;0.5x&#xff0c;x 2f(x) 1.5 0.25x&#xff0c;2 x 6&#xff…

php webshell编写,php webshell学习

一、环境kali 192.168.43.177开户apache /etc/init.d/apache2 start/var/www/html/目录下编辑php代码hackbarhttps://github.com/Mr-xn/hackbar2.1.3二、php基础输出函数:echo - 可以输出一个或多个字符串print - 只允许输出一个字符串&#xff0c;返回值总为 1提示&#xff1a…

【CodeForces - 27E】Number With The Given Amount Of Divisors (数论,数学,反素数)

题干&#xff1a; Given the number n, find the smallest positive integer which has exactly n divisors. It is guaranteed that for the given n the answer will not exceed 1018. Input The first line of the input contains integer n (1 ≤ n ≤ 1000). Outp…

*【UVA - 10382】Watering Grass(贪心,区间覆盖问题,思维)

题干&#xff1a; 题目大意&#xff1a; 有一块草坪&#xff0c;长为l&#xff0c;宽为w&#xff0c;在它的水平中心线上有n个位置可以安装喷水装置&#xff0c;各个位置上的喷水装置的覆盖范围为以它们自己的半径ri为圆。求出最少需要的喷水装置个数&#xff0c;如果无论如何…

oracle如何把字符集改回默认,更改oracle字符集

在安装oracle时&#xff0c;选了默认字符集是utf8&#xff0c;后来发现与plsql developer工具联合使用时&#xff0c;会出现各种乱码问题。再加上我的项目也是gbk的&#xff0c;因此&#xff0c;将字符集改成gbk试试。步骤如下&#xff1a;1.查看当前的字符集和语言select * fr…

【HDU - 2570】迷瘴 (贪心,水题,排序,卡精度有坑)

题干&#xff1a; 通过悬崖的yifenfei&#xff0c;又面临着幽谷的考验—— 幽谷周围瘴气弥漫&#xff0c;静的可怕&#xff0c;隐约可见地上堆满了骷髅。由于此处长年不见天日&#xff0c;导致空气中布满了毒素&#xff0c;一旦吸入体内&#xff0c;便会全身溃烂而死。 幸好…

oracle 1天后,Oracle Code One - 第1天 精彩亮点回顾

原标题&#xff1a;Oracle Code One - 第1天 精彩亮点回顾原文作者&#xff1a;Padmini Murthy 产品营销总监2018年Oracle CodOracle CodeOne大会实况 – 第1天2018年Oracle CodeOne大会开幕第一天&#xff0c;精彩纷呈&#xff0c;乐趣繁多。从Developers Exchange活动的欢畅交…

oracle 控制文件冗余,Oracle 添加冗余控制文件 for RAC On Linux

萌哒萌哒的分割线注&#xff1a;添加冗余控制文件期间需要有关库操作&#xff0c;需注意&#xff01;&#xff01;&#xff01;备份控制文件SQL> alter session set tracefile_identifier‘backupctrl‘;Session altered.SQL> alter database backup controlfile to trac…

linux socket bind 内核详解,Socket与系统调用深度分析(示例代码)

1、 什么是系统调用操作系统通过系统调用为运行于其上的进程提供服务。当用户态进程发起一个系统调用&#xff0c; CPU 将切换到 内核态 并开始执行一个 内核函数 。 内核函数负责响应应用程序的要求&#xff0c;例如操作文件、进行网络通讯或者申请内存资源等。在Linux中系统调…

【UVA - 11729】Commando War (贪心,时间调度问题)

题干&#xff1a;&#xff08;Uva不放题干了&#xff09; 题目大意&#xff1a;&#xff08;实在是自己懒得写网上找了一个&#xff09; 解题报告&#xff1a; 调度问题&#xff0c;直接贪心出完成任务需要的时间最长的那个人排序&#xff0c;就行了。 方法正确性的证明以前也…

linux系统键盘记录器,可截获到 QQ 密码 键盘记录器源码

由于 QQ 密码做了特殊的保护&#xff0c;所以通过远程注入得到密码框内容以及通过钩子来得到键盘消息均不能探测到 QQ 的密码&#xff0c;但是通过对键盘驱动的过滤却是可以记录下 QQ 密码输入期间的内容&#xff0c;附上源码。#define DBG 1#include #include #include "…

linux exchange邮件客户端,Linux中使用Hiri邮件客户端访问Exchange帐户

大家都知道 Microsoft Exchange 是企业级邮件市场占有率第一的产品&#xff0c;早已成为 Top 500 企业首选的邮件服务器和客户端标准配备。随着 Office 365 服务在全球的铺开&#xff0c;Exchange 的市场占有率更是越来越高&#xff0c;不少中小企业甚至个人用户都已经开始使用…

群辉挂载linux nfs,Debian 9 挂载访问已设置的群晖NFS共享文件目录

说明博主先后尝试了 webdav、Samba方案后&#xff0c;最后毅然决然选择NFS的方案&#xff0c;通过挂载群晖的NFS共享文件目录作为Jellyfin的媒体库&#xff0c;媒体播放通常单个文件都比较大&#xff0c;而webdav在读取过程中需要比较长的缓存时间大文件传输并不友好。之前试过…

【CodeForces - 768C】Jon Snow and his Favourite Number(思维,技巧,套路,数学异或,循环节,trick)

题干&#xff1a; Jon Snow now has to fight with White Walkers. He has n rangers, each of which has his own strength. Also Jon Snow has his favourite number x. Each ranger can fight with a white walker only if the strength of the white walker equals his st…

c 语言定义2维字符串数组赋值,二维数组赋值字符串 c 语言 二维字符串数组赋值问题...

C语言中二维字符数组应该怎样赋值&#xff1f;c语言二维数组如何定义字符串&#xff1f;&#xff1f;&#xff1f;&#xff1f;急。。。二维字符数组的定义格式为&#xff1a;char 数组名[第一维大小][第二维大小]; 例如&#xff1a;char c[3][10]; //定义了一个3行10列的二维字…

qt android wifi,QtScrcpy: Android实时投屏软件,此应用程序提供USB(或通过TCP/IP)连接的Android设备的显示和控制。它不需要任何root访问权限...

QtScrcpyQtScrcpy可以通过USB(或通过TCP/IP)连接Android设备&#xff0c;并进行显示和控制。不需要root权限。单个应用程序最多支持16个安卓设备同时连接。同时支持GNU/Linux&#xff0c;Windows和MacOS三大主流桌面平台它专注于:精致 (仅显示设备屏幕)性能 (30~60fps)质量 (19…

android 添加so,Android studio 中添加 .so 文件

场景&#xff1a;Android studio 编译我的项目(项目中有运用的jni)&#xff0c;编译没有报错&#xff0c;正常的安装到我的机器上&#xff0c;可是运行的时候就报错&#xff0c;没有找到*.so文件...可是明明在libs&#xff0c;目录下有加相关的文件&#xff1f;参考网上大部分的…

投票抵制华为鸿蒙系统,网友投票华为十大技术:鸿蒙OS仅排第二!

作为国内消费电子巨头&#xff0c;华为的技术实力是有目共睹的&#xff0c;在过去的一年发布的许多黑科技让人眼前一亮&#xff0c;那么今日(17日)消息&#xff0c;华为终端今天表示&#xff0c;此前向粉丝们征集票选过去这一年里大家最关注的十大功能技术。最终&#xff0c;收…

平板android怎么玩电脑游戏,Android平板模拟家用主机游戏教程_小米 平板_平板电脑新闻-中关村在线...

一、NESoid看完了上一页Windows系统模拟器介绍的网友应该能得出一个经验&#xff0c;一般模拟器的名称都和其模拟的游戏主机名称比较类似&#xff0c;所以很多模拟器都可以通过其名称判断出它到底是模拟谁的。比如这款NESoid&#xff0c;看名字就知道是模拟NES主机&#xff0c;…