因为今天省选组也做a组,以为今天a组会很难,就做了做b组。t1和t3强行暴力,好在有t2保底。t1和正解就差一点,然而考试时死活想不起来......

今天改题可以少改一道了!ovo

救救孩子吧!t1T到上天......然后打完后电脑蓝屏了。不想动弹

好吧,重打了一遍,终于调对了。

t1:

Description

有n个正整数a[i],设它们乘积为p,你可以给p乘上一个正整数q,使p*q刚好为正整数m的阶乘,求m的最小值。
 

Input

共两行。
第一行一个正整数n。
第二行n个正整数a[i]。

Output

共一行
一个正整数m。

质因数分解,然后二分m,找因子个数判断。注意质因数分解的方式......

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int prime[],ps[],dv[],cntt,n,tot;
int a[],b[];
long long cnt[];
int check(long long mid)
{
for(int i=;i<=tot;i++)
{
long long con=;
for(long long j=b[i];j<=mid;j*=b[i])
{
con=(con+mid/(j));
}
if(con<cnt[b[i]])
return ;
}
return ;
}
int main()
{
freopen("factorial.in","r",stdin);
freopen("factorial.out","w",stdout);
cin>>n;
for(int i=;i<=n;i++)
scanf("%d",&a[i]);
for(int i=;i<=;i++)
prime[i]=;
dv[]=;
for(int i=;i<=;i++)
{
if(prime[i])
ps[++cntt]=i,dv[i]=i;
for(int j=;j<=cntt;j++)
{
if(ps[j]*i>)
break;
prime[ps[j]*i]=;
dv[i*ps[j]]=ps[j];
if(i%ps[j]==) break;
} }
for(int i=;i<=n;i++)
{
while(dv[a[i]]!=a[i])
{
if(!cnt[dv[a[i]]])
b[++tot]=dv[a[i]];
cnt[dv[a[i]]]++;
a[i]/=dv[a[i]];
}
if(a[i]!=)
{
if(!cnt[a[i]])
b[++tot]=a[i];
cnt[a[i]]++;
}
}
long long l=,r=;
while(l<r)
{
long long mid=(l+r)>>;
if(check(mid))
r=mid;
else
l=mid+;
}
cout<<l;
fclose(stdin);
fclose(stdout);
return ;
}

先整上t2吧:

这道题正解是搜索,但我考试时觉得它和day3的t2有点像,就写了一个差不多的套路。向不用拐弯可以到达的点连边,然后一个spfa就出答案了。当时有点虚,但反正愉悦ac了,快乐。

Description

       小S是一个爱锻炼的孩子,他在放假期间坚持在A公园练习跑步。
      但不久后,他就开始为在重复的地点练习感到厌烦了,他就打算去B公园跑步。
      但是小S由于没有去过B公园,他不知道B公园是否适合练习跑步,又不知道在B公园怎样跑是最优的。所以小S就去B公园进行了一番勘测。
      小S在进行了一番勘测后,画出了一张地图,地图每一个位置上都辨识了小S到达该位置后不能往哪一个方位移动。其中有5种表示的符号:“U”代表不能向上移动,“D”代表不能向下移动,“L”代表不能向左移动,“R”代表不能向右移动,如果该位置有障碍物,小S到达那里后无法继续训练,就用“S”来代表。整个公园共有n行m列,小S会从第1行第1列出发,到第n行第m列结束他的练习。
      现在小S想要知道,从起点(即第1行第1列)到终点(第n行第m列),途中最少要改变几次方向(即上一次移动的方向和这一次移动的方向不一样)?
      注意:小S如在训练途中离开公园(即地图范围),则算是结束训练。
 

Input

      第1行两个整数n和m,它们的定义请看【题目描述】。
      第2~n+1行,每行有m个字符,表示小S的移动方向。

Output

      如果小S从第1行第1列出发无论如何都到达不了第n行第m列,输出“No Solution”,否则输出小S途中最少要改变方向的次数。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
int n,m,cnt,head[],dis[],vis[];
char mp[][];
struct Edge
{
int v,nxt,val;
}e[];
void spfa()
{
int nn=n*m;
for(int i=;i<=n*m;i++)
dis[i]=0x3f3f3f3f;
queue<int>q;
dis[]=;
vis[]=;
q.push();
while(!q.empty())
{
int u=q.front();
vis[u]=;
q.pop();
for(int i=head[u];i;i=e[i].nxt)
{
int v=e[i].v;
if(dis[v]>dis[u]+)
{
dis[v]=dis[u]+;
if(!vis[v])
{
vis[v]=;
q.push(v);
}
}
}
}
}
void add(int u,int v,int val)
{
e[++cnt].nxt=head[u];
e[cnt].v=v;
e[cnt].val=val;
head[u]=cnt;
}
int num(int x,int y)
{
return (x-)*m+y;
}
void addup(int x,int y)
{
int nums=num(x,y);
int xx=x-;
while(xx>)
{
add(nums,num(xx,y),);
if(mp[xx][y]=='U'||mp[xx][y]=='S')
return;
xx--;
}
}
void adddown(int x,int y)
{
int nums=num(x,y);
int xx=x+;
while(xx<=n)
{
add(nums,num(xx,y),);
if(mp[xx][y]=='D'||mp[xx][y]=='S')
return; xx++;
}
}
void addleft(int x,int y)
{
int nums=num(x,y);
int yy=y-;
while(yy>)
{
add(nums,num(x,yy),);
if(mp[x][yy]=='L'||mp[x][yy]=='S')
return;
yy--;
}
}
void addright(int x,int y)
{
int nums=num(x,y);
int yy=y+;
while(yy<=m)
{
add(nums,num(x,yy),);
if(mp[x][yy]=='R'||mp[x][yy]=='S')
return;
yy++;
}
}
int main()
{
freopen("run.in","r",stdin);
freopen("run.out","w",stdout);
cin>>n>>m;
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
cin>>mp[i][j];
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
if(mp[i][j]=='S')
continue;
if(mp[i][j]!='U')
addup(i,j);
if(mp[i][j]!='D')
adddown(i,j);
if(mp[i][j]!='L')
addleft(i,j);
if(mp[i][j]!='R')
addright(i,j);
}
spfa();
if(dis[num(n,m)]==0x3f3f3f3f)
cout<<"No Solution";
else
cout<<dis[num(n,m)]-;
fclose(stdin);
fclose(stdout);
return ;
}

待补充!

纪中2018暑假培训day5提高b组改题记录的更多相关文章

  1. 纪中2018暑假培训day1提高b组改题记录

    收到意见,认为每天的程序和随笔放在一起写的博客太长了,于是分开整理 day1 模拟赛,看了看提高a组t1的样例就不太想写,于是转而写b组 t1: Description 给定一个n个点m条边的有向图, ...

  2. 纪中2018暑假培训day7提高b组改题记录

    由于今天太颓了,所以没有解释 t1: Description 码零鼠是一只很喜欢mx数学的神犇,上面那个不是ta本人的样子.这天,ta在研究一个神奇的数列,这个数列是这样的:a0 = 1an = ai ...

  3. 纪中2018暑假培训day3提高a组改题记录(混有部分b组)

    day3 模拟赛,看了看a组题,发现是博弈论,非常开心(因为好玩),于是做的a组.结果差点爆零,死命纠结t1的sg函数,但其实只是一个dp,不用扯到sg函数的那种. t1: Description 被 ...

  4. NOIP2016提高A组 B题 【HDU3072】【JZOJ4686】通讯

    题目描述 “这一切都是命运石之门的选择.” 试图研制时间机器的机关SERN截获了中二科学家伦太郎发往过去的一条短 信,并由此得知了伦太郎制作出了电话微波炉(仮). 为了掌握时间机器的技术,SERN总部 ...

  5. NOIP2016提高A组 A题 礼物—概率状压dp

    题目描述 夏川的生日就要到了.作为夏川形式上的男朋友,季堂打算给夏川买一些生 日礼物. 商店里一共有n种礼物.夏川每得到一种礼物,就会获得相应喜悦值Wi(每种礼物的喜悦值不能重复获得). 每次,店员会 ...

  6. 2018年蓝桥杯java b组第二题

    2.标题:方格计数 如图p1.png所示,在二维平面上有无数个1x1的小方格. 我们以某个小方格的一个顶点为圆心画一个半径为1000的圆.你能计算出这个圆里有多少个完整的小方格吗? 注意:需要提交的是 ...

  7. 2018年蓝桥杯ava b组第一题

    第一题.标题:第几天 2000年的1月1日,是那一年的第1天.那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写任何多余内容 如果问我怎么做的,我就是看日历做的,看了 ...

  8. $NOIp$提高组做题记录

    对了我在这里必须讲一个非常重要的事情,就是前天也就是$2019.8.21$的傍晚,我决定重新做人了$!!$ 其实之前没怎么做$Noip$题,那就从现在开始叭

  9. 纪中集训2020.02.05【NOIP提高组】模拟B 组总结反思——【佛山市选2010】组合数计算,生成字符串 PPMM

    目录 JZOJ2290. [佛山市选2010]组合数计算 比赛时 之后 JZOJ2291. [佛山市选2010]生成字符串 比赛时 之后 JZOJ2292. PPMM 比赛时 之后 JZOJ2290. ...

随机推荐

  1. Day 4-8 hashlib加密模块

    HASH Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射 ...

  2. 数据库及ORM

    数据库概念 关系数据库编程 ORM编程

  3. php 将数组转换网址URL参数

    $array =array ( 'id' =123, 'name' = 'dopost' );echo http_build_query( $array );//得到结果id=123name=dopo ...

  4. NIO服务器与客户端

    这里客户端没有采用NIO形式 服务器: package com.util.Server.NIO; import javax.print.DocFlavor;import java.io.IOExcep ...

  5. 用mescroll实现无限上拉增加数据,下拉刷新数据 (学习笔记)

    最近自己做一个web app需要用到上拉查询下页数据,网上看了很多很多帖子,发现并不能快速的套用,总是会出现各种问题无法使用,于是无奈自己跑去看了官方api文档,终于做了出来,至此做个笔记,以后用到可 ...

  6. 运维常用mysql语句

    1..select @@version; ##查询当前mysql的版本. 2. show variables like 'port';##查看mysql实例的端口. 3.show variables ...

  7. Java反射交换两个整型变量的值

    在一次面试中,做了这么一道题"交换两个整型变量的值",当时看到这个题目之后,会心一笑,这也太简单了--直接使用中间变量交换不就可以了吗?但是,面试官却说不需要返回值,在调用的地方, ...

  8. python之类和__init__

    构建一个商品类,__init__函数类似于构造方法,self类似于this import random class Goods: def __init__(self, name, price): se ...

  9. 如何安装或卸载Lodop、C-Lodop

    安装:下载.exe安装文件,一步步安装就行,如不特意拦截,应该是100%可以安装成功.客户端本地打印角色等,直接一步步安装就行,如果是广域网AO打印那种,在服务器上安装的c-lodop,需要勾选服务器 ...

  10. maven+Spring+SpringMVC+Hibernate快速搭建

    目录结构: pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ...