3.25-3.28日志及3.26模拟赛分析

3.25:今天早上做的还好,做了4题洛谷和1题poj,下午则做的不太多,只有一题poj。
3.26:今天在百忙之中(模拟赛),还是刷了一道poj的。模拟赛终于稳定了名次,Rank.7左右,恢复了之前的状态,希望能坚持,甚至做的更好。结尾追加题目与题解。
3.28:今天JPY讲了KMP,Trie和AC自动机,还是要多做题,搞懂它们。刷了poj7题,hdu1题。


3.26模拟赛题目&题解:
T1
题目大意:有n头牛,2头公牛中间至少要有k头母牛。问方案数对大质数取模值。(n<=100000)。
我的想法:不造为什么n这么小,按理说n为10000000都没问题的。其实吧,这题是一个不难的DP。数组f[]表示放到第i头牛的方案数,为了区分公牛母牛,我们设数组f[][0]来表示公牛,f[][1]来表示母牛,母牛由于没有限制条件,所以某一位的值为前一位公牛母牛的和,而公牛由于有限制所以只有n-k+1的地方可以有公牛出现,所以公牛某一位的值为n-k+1位公牛母牛个数和,最后答案即为f[n][1],f[n][0]相加,注意初始化f[i][1],f[i][0]都是1,1~k+1的公牛值是1。
则有:

f[i][x] i=1 2 3 4 5···
   x=0    1 1 1 2 3
   x=1    1 2 3 4 6
   ans    2 3 4 6 9

其实可以优化到去掉后一维[x],但x小,且加上易于理解,就不去了,orz我的同学还有线段树,排列组合AC的。
T2
题目大意:有n组数,每一组有d个数,你最多可以用不超过k个任意数,请你找出你能表示的最多的连续组。(T组数据,T<=10,n<=1000000,d=1~3,k<=4)
我的想法:唉,orz爆〇了,其实写暴力可以得到30分优化的好可以60分+,但由于种种原因,我写wei了。。。讲一下标算。这个n较大n,但好像没有O(n)算法,只能退而求其次,O(n*lgn)成了首选,我们二分组数mid,从mid向两边尽可能的拓展,不断更新答案,为了避免TLE,我们当r-l已经小于ans时直接退出。
部分代码:

bool check(int x)
{
    for(int i=1;i<=d;i++)if(mark[a[x][i]])return 1;
    return 0;
}
void dfs(int l,int r,int lx,int rx,int k)
{
    while(check(l-1)&&l>lx)l--;
    while(check(r+1)&&r<rx)r++;
    if(r-l>ansr-ansl)ansl=l,ansr=r;
    if(r-l==ansr-ansl&&l<ansl)ansl=l,ansr=r;
    if(k==K)return;
    for(int i=1;i<=d;i++)
    {
    if(l!=lx)
    {
    mark[a[l-1][i]]=1;
    dfs(l-1,r,lx,rx,k+1);
    mark[a[l-1][i]]=0;
    }
    if(r!=rx)
    {
    mark[a[r+1][i]]=1;
    dfs(l,r+1,lx,rx,k+1);
    mark[a[r+1][i]]=0;
    }
    }
}
void solve(int l,int r)
{
    if(r-l<ansr-ansl)return;
    if(l>r)return;
    int mid=(l+r)>>1;
    for(int i=1;i<=d;i++)
    {
    mark[a[mid][i]]=1;
    dfs(mid,mid,l,r,1);
    mark[a[mid][i]]=0;
    }
    solve(l,mid-1);solve(mid+1,r);
}

T3
题目大意:给你一个数x,求1~x中有多少数是可以被自己每一位上的数整除的。(多组数据,数据组数少于不多于10000,x<=9*10^18)
我的想法:嘿嘿嘿。。。我选择暴力50%。显然的是数位DP,但比较难构造,懒得分析了,233。
大致代码:

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <map>
#include <queue>
#include <algorithm>
using namespace std;
#define LL long long
LL dp[20][2525][55];
int digit[20];
int hash[2525];
int gcd(int a,int b)
{
   if(b == 0) return a;
   return gcd(b,a%b);
}
int calc_lcm(int a,int b)
{
   return a/gcd(a,b)*b;
}
LL dfs(int pos,int mod,int lcm,bool limit)
{
   LL ans = 0;
   if(pos<=0) return mod % lcm == 0;
   if(!limit && dp[pos][mod][hash[lcm]]!=-1) return dp[pos][mod][hash[lcm]];
   int end = limit ? digit[pos] : 9;
   for(int i=0;i<=end;i++)
   {
      ans += dfs(pos-1,(mod*10+i)%2520,i?calc_lcm(lcm,i):lcm,limit && (i==end));
   }
   if(!limit) dp[pos][mod][hash[lcm]] = ans;
   return ans;
}
LL calc(LL a)
{
   if(a<0) return 0;
   int len = 0;
   while(a>0)
   {
      digit[++len] = a%10;
      a/=10;
   }
   LL ans = dfs(len,0,1,1);
   return ans;
}
void init()
{
   memset(dp,-1,sizeof(dp));
   int id = 0;
   for(int i=1;i*i<=2520;i++)
   {
      if(2520%i == 0)
      {
         hash[i] = id++;
         if(i*i!=2520) hash[2520/i] = id++;
      }
   }
}
int main()
{
   freopen("flower.in","r",stdin);
   freopen("flower.out","w",stdout); 
   init();
   int t;
   LL x,y;
   scanf("%I64d",&x);
   while(scanf("%I64d",&x)!=EOF)
   {
      printf("%I64d\n",calc(x));
   }
   return 0;
}

内容概要:该论文研究了一种基于行波理论的输电线路故障诊断方法。当输电线路发生故障时,故障点会产生向两侧传播的电流和电压行波。通过相模变换对三相电流行波解耦,利用解耦后独立模量间的关系确定故障类型和相别,再采用小波变换模极大值法标定行波波头,从而计算故障点距离。仿真结果表明,该方法能准确识别故障类型和相别,并对故障点定位具有高精度。研究使用MATLAB进行仿真验证,为输电线路故障诊断提供了有效解决方案。文中详细介绍了三相电流信号生成、相模变换(Clarke变换)、小波变换波头检测、故障诊断主流程以及结果可视化等步骤,并通过多个实例验证了方法的有效性和准确性。 适合人群:具备一定电力系统基础知识和编程能力的专业人士,特别是从事电力系统保护与控制领域的工程师和技术人员。 使用场景及目标:①适用于电力系统的故障检测与诊断;②能够快速准确地识别输电线路的故障类型、相别及故障点位置;③为电力系统的安全稳定运行提供技术支持,减少停电时间和损失。 其他说明:该方法不仅在理论上进行了深入探讨,还提供了完整的Python代码实现,便于读者理解和实践。此外,文中还讨论了行波理论的核心公式、三相线路行波解耦、行波测距实现等关键技术点,并针对工程应用给出了注意事项,如波速校准、采样率要求、噪声处理等。这使得该方法不仅具有学术价值,也具有很强的实际应用前景。
内容概要:本文深入剖析了2025年全球感知技术的十大发展趋势,涵盖多模态感知融合、3D感知与空间计算、脑机接口中的感知反馈技术、5G/6G赋能的超低延迟感知、语音与情感识别的高级化、生物感知与数字健康、环境感知与自适应智能、增强现实(AR)与触觉反馈技术、气味与化学感知、量子感知与极端条件测量。文章详细介绍了每项技术的技术原理、关键算法、实现方式、商业案例及未来前景,强调了感知技术在智慧城市、自动驾驶、智慧医疗、工业自动化等领域的深刻影响。报告指出,感知技术正从单一传感模式向多模态融合、从二维数据向三维空间重建、从传统网络通信向超低延迟和高可靠性网络升级,实现全场景、全维度的智能感知。; 适合人群:对感知技术感兴趣的科技爱好者、研究人员、决策者、企业管理层和投资人。; 使用场景及目标:①了解感知技术的最新进展和未来发展方向;②为技术研究提供全面、深入的参考;③为商业应用提供具体的案例和前景分析;④推动跨领域协同创新,构建开放共赢的产业生态。; 其他说明:报告基于近年来技术研发的最新进展、业界前沿的技术路线以及各大科技企业在商业落地方面的丰富实践。随着感知技术的不断成熟,数据隐私与安全保护问题也需高度重视,以确保技术进步与社会伦理和谐统一。未来,感知技术将成为推动社会进步和产业升级的重要力量,为实现万物互联、智慧决策和智能体验提供无限可能。
### 回答1: sqlite-jdbc-3.25.1.jar 是一个用于连接和操作 SQLite 数据库的 Java 驱动程序。它提供了在 Java 程序中对 SQLite 数据库进行读取和写入的功能。 SQLite 是一个轻量级的嵌入式数据库引擎,被广泛应用于移动设备和嵌入式系统中。而 sqlite-jdbc-3.25.1.jar 则是 SQLite 数据库的 Java 接口,它允许开发者使用 Java 语言来访问和操作 SQLite 数据库。该驱动程序允许在 Java 应用程序中使用 SQL 语句对 SQLite 数据库进行增、删、改、查等操作。 使用 sqlite-jdbc-3.25.1.jar 进行 SQLite 数据库操作非常简单。开发者只需在 Java 项目中引入该驱动程序的 Jar 文件,并使用 Java 代码进行连接和操作数据库即可。通过创建 Connection 对象,开发者可以连接到 SQLite 数据库。然后,可以使用该对象创建 Statement 对象,并通过执行 SQL 查询和更新语句来操作数据库中的数据。最后,需确保在使用完毕后,关闭相关的连接和资源。 除了提供基本的数据库连接和操作功能外,sqlite-jdbc-3.25.1.jar 还支持事务管理、预编译 SQL 语句、批量处理等高级功能,使得 SQLite 数据库在 Java 程序中的使用更加灵活和高效。 总而言之,sqlite-jdbc-3.25.1.jar 是一个用于连接和操作 SQLite 数据库的 Java 驱动程序。它方便了开发者在 Java 程序中使用 SQL 语句对 SQLite 数据库进行操作,为开发者提供了一个简单、高效的访问 SQLite 数据库的接口。 ### 回答2: sqlite-jdbc-3.25.1.jar是一个Java编程语言的SQLite数据库驱动程序。SQLite是一种轻量级的关系型数据库管理系统,具有快速、可靠和易于集成的特点。它是一个嵌入式数据库,不需要独立的服务器进程,可以直接在应用程序中使用。 sqlite-jdbc-3.25.1.jar是SQLite官方提供的Java接口实现。它提供了对SQLite数据库的连接、查询、插入、更新和删除等操作的支持。通过引入该jar包,我们可以在Java应用程序中使用SQLite数据库,进行数据的持久化存储和访问。 使用sqlite-jdbc-3.25.1.jar可以简化与SQLite数据库的交互过程。我们只需在Java程序中引入该库,并配置相应的连接参数,即可创建和管理SQLite数据库连接对象。然后,我们可以使用SQL语句来执行数据库操作,例如查询表中的数据、插入新的记录、更新已有记录等。 sqlite-jdbc-3.25.1.jar还提供了一些其他的功能和特性,例如批量操作、事务处理、预编译语句、连接池管理等,可以进一步优化数据库操作的性能和效率。 总之,sqlite-jdbc-3.25.1.jar是一个能够在Java应用程序中与SQLite数据库进行交互的驱动程序。通过使用它,我们可以更方便地使用SQLite作为数据存储和管理的解决方案,实现数据持久化和访问的需求。 ### 回答3: sqlite-jdbc-3.25.1.jar 是SQLite数据库的Java驱动程序。它是用于在Java应用程序中与SQLite数据库进行交互的关键库文件。SQLite是一个轻量级的嵌入式关系型数据库,适用于移动设备和小型应用。而sqlite-jdbc-3.25.1.jar允许Java开发人员通过提供一个简单的API来连接和操作SQLite数据库。 sqlite-jdbc-3.25.1.jar提供了一系列的类和方法,使开发人员可以轻松地创建、查询、更新和删除数据库中的数据。它支持执行SQL语句、预编译语句、事务管理等数据库操作。从连接数据库、执行SQL语句到关闭数据库连接,sqlite-jdbc-3.25.1.jar提供了一套完整的功能来简化与SQLite数据库的交互。 使用sqlite-jdbc-3.25.1.jar可以带来很多好处。首先,它提供了一个简单而易于使用的API,使得在Java应用程序中使用SQLite数据库变得更加方便。其次,它具有良好的性能和可靠性,能够处理大量数据和高并发访问。另外,sqlite-jdbc-3.25.1.jar是开源的,意味着开发人员可以根据自己的需求进行定制和扩展。最重要的是,由于SQLite是一个嵌入式数据库,所以在使用sqlite-jdbc-3.25.1.jar时不需要额外安装和配置数据库服务器,这使得应用程序的部署更加简单和便捷。 总而言之,sqlite-jdbc-3.25.1.jar是一个重要的Java库文件,它使得在Java应用程序中使用SQLite数据库变得更加便捷和高效。它具有简单易用的API、良好的性能和可靠性,适用于各种规模的应用程序。无论是在移动设备还是小型应用中,sqlite-jdbc-3.25.1.jar都是首选的数据库驱动程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值