10.3 考试 (考得不好)

T1

我只能说 它是一个比较暴力的dp,需要人力讨论...

所以考试觉得讨论太麻烦,直接内心崩溃了....(好像这也是我考炸的原因吧)

教训:以后要勤快一些,代码能力 唉唉唉

 

#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <cmath>
#define mem(a,b) memset(a,b,sizeof(a))
#define ll long long
using namespace std;
const int N=2000006;
const int mod=1000000007;char s[N];
int n;
ll ans;ll f[N][10];void dp()
{if(s[1]=='0')f[1][0]=1;elseif(s[1]=='1')f[1][3]=1;elseif(s[1]=='*')f[1][4]=1;elseif(s[1]=='?'){f[1][0]=1;f[1][3]=1;f[1][4]=1;}for(int i=2;i<=n;++i){if(s[i]=='0'){f[i][0]+=f[i-1][0];f[i][0]%=mod;f[i][0]+=f[i-1][1];f[i][0]%=mod;}elseif(s[i]=='1'){f[i][3]+=f[i-1][0];f[i][3]%=mod;f[i][3]+=f[i-1][1];f[i][3]%=mod;f[i][1]+=f[i-1][4];f[i][1]%=mod;}elseif(s[i]=='2'){f[i][2]+=f[i-1][4];f[i][2]%=mod;}elseif(s[i]=='*'){f[i][4]+=f[i-1][3];f[i][4]%=mod;f[i][4]+=f[i-1][2];f[i][4]%=mod;f[i][4]+=f[i-1][4];f[i][4]%=mod;}else{f[i][0]+=f[i-1][0];f[i][0]%=mod;f[i][0]+=f[i-1][1];f[i][0]%=mod;f[i][3]+=f[i-1][0];f[i][3]%=mod;f[i][3]+=f[i-1][1];f[i][3]%=mod;f[i][1]+=f[i-1][4];f[i][1]%=mod;f[i][2]+=f[i-1][4];f[i][2]%=mod;f[i][4]+=f[i-1][3];f[i][4]%=mod;f[i][4]+=f[i-1][2];f[i][4]%=mod;f[i][4]+=f[i-1][4];f[i][4]%=mod;}}
}int main(){scanf("%s",s);n=strlen(s);for(int i=n;i>=1;--i)s[i]=s[i-1];dp();ll ans=0;for(int i=0;i<=4;++i){if(i==2||i==3)continue;ans=(ans+f[n][i])%mod;}cout<<ans;
}
T1

 

 

 

T2

这个结论 其实考试的时候已经很接近了

就是 每个点到所有边界点的所有路径中最高山的最小值

然后 可以求个最小生成树,在跑bfs

 

#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <cmath>
#define mem(a,b) memset(a,b,sizeof(a))
#define ll long long
using namespace std;
const int N=316;
struct son
{int v,next,w;
}a1[N*N*3];
int first[N*N*3],e;
void addbian(int u,int v,int w)
{a1[e].v=v;a1[e].w=w;a1[e].next=first[u];first[u]=e++;
}struct JI
{int u,v,w;bool friend operator < (JI a,JI b){return a.w<b.w;}
}ji[N*N*3];
int con;int n,m;
int h[N][N];
int dui[N][N];
int ccc;int fa[N*N*3];
int fin(int x)
{if(fa[x]==-1)return x;fa[x]=fin(fa[x]);return fa[x];
}void kru()
{sort(ji+1,ji+1+con);int now=0,x,y;for(int i=1;i<=con;++i){x=fin(ji[i].u);y=fin(ji[i].v);if(x!=y){fa[x]=y;//printf("%d\n",ji[i].w);addbian(ji[i].u,ji[i].v,ji[i].w);addbian(ji[i].v,ji[i].u,ji[i].w);++now;}if(now==ccc-1)break;}
}int du[10000006],he,en;
int d[N*N*3];
bool flag[N*N*3];
void work()
{mem(d,60);int now;he=1;en=0;for(int i=n*m+1;i<=ccc;++i){d[i]=0;du[++en]=i;flag[i]=1;}int temp,temp1;while(en>=he){now=du[he++];flag[now]=0;//printf("now=%d\n",now);for(int i=first[now];i!=-1;i=a1[i].next){temp=a1[i].v;temp1=max(d[now],a1[i].w);if(d[temp]>temp1){d[temp]=temp1;if(!flag[temp]){flag[temp]=1;du[++en]=temp;}}}}
}int main(){//freopen("T2.in","r",stdin);mem(fa,-1);mem(first,-1);scanf("%d%d",&n,&m);for(int i=1;i<=n;++i)for(int j=1;j<=m;++j)scanf("%d",&h[i][j]),dui[i][j]=(i-1)*m+j;ccc=n*m;for(int i=1;i<=n;++i)dui[i][0]=++ccc,dui[i][m+1]=++ccc;for(int j=1;j<=m;++j)dui[0][j]=++ccc,dui[n+1][j]=++ccc;for(int i=0;i<=n;++i)for(int j=1;j<=m;++j)ji[++con]=(JI){dui[i][j],dui[i+1][j],max(h[i][j],h[i+1][j])};//ji[++con]=(JI){dui[i+1][j],dui[i][j],max(h[i][j],h[i+1][j])};for(int j=0;j<=m;++j)for(int i=1;i<=n;++i)ji[++con]=(JI){dui[i][j],dui[i][j+1],max(h[i][j],h[i][j+1])};//ji[++con]=(JI){dui[i][j+1],dui[i][j],max(h[i][j],h[i][j+1])};kru();work();/*printf("\n");for(int i=1;i<=ccc;++i)printf("i=%d %d\n",i,d[i]);printf("\n");*/for(int i=1;i<=n;++i){for(int j=1;j<=m;++j)printf("%d ",d[dui[i][j]]-h[i][j]);printf("\n");}
}
T2

 

 

 

T3

这个题 考试也是很接近,但是无奈,以前懒,根本没有学莫比乌斯函数的性质

 

#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <cmath>
#define C(n) ((ll)(n)*((n)-1)/2)
#define mem(a,b) memset(a,b,sizeof(a))
#define ll long long
using namespace std;
const int N=200006;
const int MAXVAL=500006;
struct son
{int v,next;
}a1[N*(1<<6)];
int first[N*(1<<6)],e;
void addbian(int u,int v)
{a1[e].v=v;a1[e].next=first[u];first[u]=e++;
}int mu[MAXVAL],prime[MAXVAL],con;
bool he[MAXVAL];void get_mu()
{mu[1]=1;for(int i=2;i<MAXVAL;++i){if(!he[i]){prime[++con]=i;mu[i]=-1;}for(int j=1;j<=con&&prime[j]*i<MAXVAL;++j){he[i*prime[j]]=1;if(i%prime[j]==0){mu[i*prime[j]]=0;break;}elsemu[i*prime[j]]=-mu[i];}}
}int n,m;
int a[N];
bool flag[N];
ll sum[MAXVAL];int main(){//freopen("gcd1.in","r",stdin);//freopen("T3.out","w",stdout);mem(first,-1);scanf("%d%d",&n,&m);for(int i=1;i<=n;++i)scanf("%d",&a[i]);get_mu();for(int i=1;i<=n;++i)for(int j=1;j*j<=a[i];++j)if(a[i]%j==0){addbian(i,j);if(j!=a[i]/j)addbian(i,a[i]/j);}int tin;ll now=0;for(int i=1;i<=m;++i){scanf("%d",&tin);if(flag[tin])for(int j=first[tin];j!=-1;j=a1[j].next){now-=((ll)mu[a1[j].v]*C(sum[a1[j].v]));--sum[a1[j].v];now+=((ll)mu[a1[j].v]*C(sum[a1[j].v]));}elsefor(int j=first[tin];j!=-1;j=a1[j].next){now-=((ll)mu[a1[j].v]*C(sum[a1[j].v]));++sum[a1[j].v];now+=((ll)mu[a1[j].v]*C(sum[a1[j].v]));}flag[tin]^=1;printf("%lld\n",now);}
}
T3

 

 

 

 

至此,可以总结了:

1.考试不要慌,不要嫌麻烦

2.做人要勤快...

 

转载于:https://www.cnblogs.com/A-LEAF/p/7624969.html

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

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

相关文章

小程序[渲染层网络层错误] failed to load image_游戏中水的渲染技术

水的渲染一直是图形学需要解决的问题&#xff0c;本篇博客主要介绍用傅里叶变换算法实现的水反射&#xff0c;也是一种假反射效果&#xff0c;目的是优化效率。实现的效果如下图所示&#xff1a;使用傅里叶系数来表示地形高度的假反射效果&#xff0c;在我们开发的游戏中使用水…

pip install 报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xb5 in

当python在window环境中通过pip安装pandas报标题这样的错&#xff0c;主要是因为python默认编码格式是&#xff1a;ascii 在https://www.python.org/dev/peps/pep-0100/文章中有介绍 解决方法&#xff1a;在python/lib/site.py中加入 import sysreload(sys)sys.setdefaultenc…

jdbc是java语言编写的类和接口_JDBC——Java语言连接数据库的标准

JDBC概述APIJDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API&#xff0c;可以为多种关系数据库提供统一访问&#xff0c;它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准&#xff0c;据此可以构建更高级的工具和接口&#xff0c;使…

怎样判断电饭锅温度传感器的好坏?_空调温度传感器的作用与检测。

温度传感器是指对温度进行感应&#xff0c;并将感应的温度变化情况转换为电信号的功能部件。我们在练习温度传感器检测代换之前&#xff0c;要先对温度传感器的安装位置、结构特点和工作原理有一定的了解。1、温度传感器的安装位置及结构在空调器室内机中&#xff0c;通常设有两…

java去掉图片边框颜色_sharp 去除图片边框

trim接受参数是颜色相似度, 并不能指定边框颜色, 所以有可能会误删除内容, 需要注意trim 需要转为buffer或者文件后再次操作, 否则图片信息不变从剪裁效果来看, 精度和速度都是可以的const sharp require("sharp");const path "./html/a.png";const outp…

java mail 不用密码_iPhone 无需越狱,简单给 App 加密码锁

在手机上总有些小秘密&#xff0c;也有些APP不想被打开。由于iOS本身限制&#xff0c;想给APP加上密码锁&#xff0c;一般都是需要越狱才能实现。其实在iOS 12就加入了【屏幕使用时间】&#xff0c;用来更好设置APP使用时间的限额。屏幕使用时间屏幕时间功能可以协助您了解自己…

spark内存溢出怎么解决_和平精英:更新需要预留6G内存,玩家抱怨手机扛不住,怎么解决?...

嗨&#xff0c;小伙伴们大家好呀&#xff01;《和平精英》新版本终于来了哈&#xff0c;小伙伴们在22号上午登录游戏&#xff0c;就可以收到更新提示&#xff0c;点击进行更新就好了。或者是在各个应用商店里等待更新推送&#xff0c;也行哦&#xff01;但是呢&#xff0c;每到…

【转】LDA数学八卦

转自LDA数学八卦 在 Machine Learning 中&#xff0c;LDA 是两个常用模型的简称&#xff1a; Linear Discriminant Analysis 和 Latent Dirichlet Allocation&#xff0c; 在这篇文章中我们主要八卦的是后者。LDA 是一个在文本建模中很著名的模型&#xff0c;类似于 SVD, PLSA …

电脑字体模糊_小红书上传视频模糊?做小红书视频99%的工具都在这了

到现在小红书视频号功能已经上线快三个月了&#xff0c;越来越多的小伙伴开始拍视频、创作视频笔记&#xff0c;但是对于新接触视频的小伙伴来说&#xff0c;拍摄视频好像是一件很难的事&#xff0c;特别是不清楚该选择什么拍摄设备、不知道怎么剪辑视频&#xff0c;还有如何上…

谷歌浏览器不能上网_谷歌浏览器插件下载及安装教程!

emmm......这篇文章的内容非常小白&#xff0c;相信大部分人都会这个基本操作。但是阁主相信还有些妹子操作不来&#xff0c;如果还没有男朋友&#xff0c;那不是铁定不会安装谷歌浏览器插件么&#xff1f;其实“谷歌浏览器插件”这个组合&#xff0c;可以解决很多问题&#xf…

高级技巧之Lambda表达式

1.Lambda表达式简介 其本质上是一种匿名方法&#xff0c;它既没有方法名&#xff0c;也即没有访问修饰符和返回值类型&#xff0c;使用它来编写代码将会更加简洁&#xff0c;也更加易读。 2.使用该表达式需要配置的数据 3.传统java和使用Lambda表达式的对比 0&#xff09;总结&…

设计模式之——Builder建造模式

Builder模式又叫建造模式&#xff0c;是用于组装具有复杂结构的实例的模式。 示例程序是编写一个文档&#xff0c;并且写入到文件中&#xff0c;该文档具有以下结构&#xff0c;含有标题&#xff0c;字符串&#xff0c;一些条目。 Builder抽象类&#xff0c;为建造模式的核心pa…

java程序员_Java和Python的区别 好程序员帮大家解读

Java和Python的区别 好程序员今天先来解读Java编程语言的优势&#xff0c;人工智能和大数据火爆一时&#xff0c;随之而来&#xff0c;引起了编程语言的人气暴涨。而Java和Python作为最炙手可热的编程语言从一开始便赢得了众多程序员的青睐。凭借各自强大的性能和优势&#xff…

门户网站运营方案_网络营销方案涉及的工作内容有哪些

问&#xff1a;在公司从事网络营销推广工作&#xff0c;想问下要撰写网络营销方案&#xff0c;要涉及到哪些层面&#xff0c;工作内容有哪些呢&#xff1f;答&#xff1a;总的来说&#xff0c;网络营销方案涉及到&#xff1a;网站技术&#xff0c;市场营销&#xff0c;网络应用…

用宝塔本地搭建php,Windows系统如何使用宝塔面板一键快速搭建本地服务器环境(LNMP/LAMP)...

宝塔面板宝塔面板类似于wamp&#xff0c;xampp等一键集成环境。但是宝塔面板操作更简单&#xff0c;更新更快。个人建议使用宝塔替代wamp。(LNMP等环境不再赘述&#xff0c;请自行百度。建议使用LNMP环境&#xff0c;即NginxMySQLPHP环境)下载前往宝塔面板官网https://www.bt.c…

C# File类的操作

File类&#xff0c;是一个静态类&#xff0c;主要是来提供一些函数库用的。静态实用类&#xff0c;提供了很多静态的方法&#xff0c;支持对文件的基本操作&#xff0c;包括创建&#xff0c;拷贝&#xff0c;移动&#xff0c;删除和打开一个文件。File类方法的参量很多时候都是…

lstm需要优化的参数_LSTM的物理结构和一些细节

海晨威&#xff1a;一幅图真正理解LSTM的物理结构​zhuanlan.zhihu.com这个是网上看的最多的图了&#xff0c;但是在理解lstm的应用过程中的时候这个图带来了不少麻烦。展开之后实际的物理结构是这样的&#xff0c;1、2图同颜色的点代表了同一个东西&#xff1b;问题1&#xff…

OLED中的Demura

OLED作为一种电流型发光器件已越来越多地被应用于高性能显示中。由于它自发光的特性&#xff0c;与LCD相比&#xff0c;AMOLED具有高对比度、超轻薄、可弯曲等诸多优点。但是&#xff0c;亮度均匀性和残像仍然是它目前面临的两个主要难题&#xff0c;要解决这两个问题&#xff…

python的编程模式有哪两种_python程序的两种运行方式是什么

python程序的两种运行方式是什么 第一种方式&#xff1a;REPL 所谓REPL即read、eva、print、loop&#xff08;读取、计算、打印、循环&#xff09;&#xff0c;实现REPL运行方式有以下两种&#xff1a; 1、IDLE&#xff08; 集成开发环境或集成开发和学习环境&#xff09;是Pyt…

halcon 旋转_Halcon视觉软件应该如何系统学习?

End 声明&#xff1a;部分内容来源于网络&#xff0c;仅供读者学习、交流之目的。文章版权归原作者所有。如有不妥&#xff0c;请联系删除。