金山西山居初赛第一场

http://acm.hdu.edu.cn/showproblem.php?pid=4545

hdu 4545 魔法串

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 237    Accepted Submission(s): 96


Problem Description
  小明和他的好朋友小西在玩一个新的游戏,由小西给出一个由小写字母构成的字符串,小明给出另一个比小西更长的字符串,也由小写字母组成,如果能通过魔法转换使小明的串和小西的变成同一个,那么他们两个人都会很开心。这里魔法指的是小明的串可以任意删掉某个字符,或者把某些字符对照字符变化表变化。如:
    小西的串是 abba;
    小明的串是 addba;
    字符变化表 d b (表示d能转换成b)。
  那么小明可以通过删掉第一个d,然后将第二个d转换成b将串变成abba。

  现在请你帮忙判断:他们能不能通过魔法转换使两个人的串变成一样呢?
 

Input
  首先输入T,表示总共有T组测试数据(T <= 40)。
  接下来共T组数据,每组数据第一行输入小西的字符串,第二行输入小明的字符串(数据保证字符串长度不超过1000,小明的串的长度大于等于小西的,且所有字符均为小写字母)。接着输入字母表,先输入m,表示有m个字符变换方式(m< = 100),接着m行每行输入两个小写字母,表示前一个可以变为后一个(但并不代表后一个能变成前一个)。
 

Output
  对于每组数据,先输出Case数。
  如果可以通过魔法转换使两个人的串变成一样,输出“happy”,
  否则输出“unhappy”。
  每组数据占一行,具体输出格式参见样例。
 

Sample Input
  
2 abba addba 1 d b a dd 0
 

Sample Output
  
Case #1: happy Case #2: unhappy

#include<cstdio>
#include<cstring>
const int N=10002;
char s1[N],s2[N];
bool g[26][26];
int l1,l2;
int main(){
    int i,j,T,m,ca=1;
    char u[3],v[3];
    scanf("%d",&T);
    while(T--){
        scanf("%s%s",s1,s2);
        l1=strlen(s1),l2=strlen(s2);
        scanf("%d",&m);
		memset(g,0,sizeof(g));
        while(m--){
            scanf("%s%s",u,v);
            g[u[0]-'a'][v[0]-'a']=1;
        }
        for(i=0,j=0;i<l1&&j<l2;j++){
            int p=s1[i]-'a',q=s2[j]-'a';
            if(s2[j]==s1[i]||g[q][p])i++;
        }
        printf("Case #%d: ",ca++);
        puts(i==l1?"happy":"unhappy");
    }
    return 0;
}

http://acm.hdu.edu.cn/showproblem.php?pid=4546

hdu 4546比赛难度

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 199    Accepted Submission(s): 35


Problem Description
  最近,小明出了一些ACM编程题,决定在HDOJ举行一场公开赛。
  假设题目的数量一共是n道,这些题目的难度被评级为一个不超过1000的非负整数,并且一场比赛至少需要一个题,而这场比赛的难度,就是所有题目的难度之和,同时,我们认为一场比赛与本场题目的顺序无关,而且题目也不会重复。
  显而易见,很容易得到如下信息:
  假设比赛只用1个题目,有n种方案;
  假设比赛使用2个题目,有(n-1)*n/2种方案;
  假设比赛使用3个题目,有(n-2)*(n-1)*n/6种方案;
  ............
  假设比赛使用全部的n个题目,此时方案只有1种。
  
  经过简单估算,小明发现总方案数几乎是一个天文数字!
  为了简化问题,现在小明只想知道在所有的方案里面第m小的方案,它的比赛难度是多少呢?
 

Input
输入数据的第一行为一个整数T(1 <= T <= 20),表示有T组测试数据。
每组测试数据第一行为两个整数n, m(0 < n, m <= 10000),表示现在有n个题目,现在要求第m小的方案的比赛难度。接下来第二行有n个数字,分别表示这n个题目的难度值。
 

Output
对于每组测试数据,输出一行"Case #c: ans"(不包含引号),ans 表示要求的第m小的比赛难度,输入数据保证存在第m小的方案,具体参见样例。
 

Sample Input
  
2 5 6 1 1 1 1 1 5 25 1 2 3 4 5
 

Sample Output
  
Case #1: 2 Case #2: 11

 

分析:multiset直接搞,保存当前前K个数

#include<cstdio>
#include<set>
#include<algorithm>
using namespace std;
multiset<int> S,tmp;
multiset<int>::iterator it,it1;
const int N=10002;
int a[N];
int main(){
	int T,i,n,k,ca=1,t1,t2;
	scanf("%d",&T);
	while(T--){
		scanf("%d%d",&n,&k);
		S.clear();
		for(i=0;i<n;i++)scanf("%d",a+i);
		sort(a,a+n);
		bool f=0;
		S.insert(0);
		for(i=0;i<n;i++){
			if(f){
				it1=S.end(),it1--;tmp.clear();
                for(it=S.begin();it!=S.end();it++,it1--){
                    t1=(*it),t2=(*it1);
                    if(a[i]+t1<t2)tmp.insert(a[i]+t1),S.erase(S.find(t2));
                    else break;
                }
                for(it=tmp.begin();it!=tmp.end();it++)S.insert((*it));
			}else{
				tmp.clear();
				for(it=S.begin();it!=S.end();it++)tmp.insert(a[i]+(*it));
				for(it=tmp.begin();it!=tmp.end();it++)S.insert((*it));
				if(S.size()>=k+1)f=1;
				while(S.size()>k+1){
					it=S.end();it--;
					S.erase(it);
				}
			}
		}
		it=S.end(),it--;
		printf("Case #%d: %d\n",ca++,(*it));
	}
	return 0;
}

http://acm.hdu.edu.cn/showproblem.php?pid=4547

hdu 4547 CD操作

Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 166    Accepted Submission(s): 48


Problem Description
  在Windows下我们可以通过cmd运行DOS的部分功能,其中CD是一条很有意思的命令,通过CD操作,我们可以改变当前目录。
  这里我们简化一下问题,假设只有一个根目录,CD操作也只有两种方式:
  
  1. CD 当前目录名\...\目标目录名 (中间可以包含若干目录,保证目标目录通过绝对路径可达)
  2. CD .. (返回当前目录的上级目录)
  
  现在给出当前目录和一个目标目录,请问最少需要几次CD操作才能将当前目录变成目标目录?
 

Input
输入数据第一行包含一个整数T(T<=20),表示样例个数;
每个样例首先一行是两个整数N和M(1<=N,M<=100000),表示有N个目录和M个询问;
接下来N-1行每行两个目录名A B(目录名是只含有数字或字母,长度小于40的字符串),表示A的父目录是B。
最后M行每行两个目录名A B,表示询问将当前目录从A变成B最少要多少次CD操作。
数据保证合法,一定存在一个根目录,每个目录都能从根目录访问到。
 

Output
请输出每次询问的结果,每个查询的输出占一行。
 

Sample Input
  
2 3 1 B A C A B C 3 2 B A C B A C C A
 

Sample Output
  
2 1 2


分析:LCA模版题

#include<cstdio>
#include<cstring>
#include<map>
#include<string>
#include<vector>
using namespace std;
const int N=100002;
vector<int> g[N];
map<string,int> m1;
int lv[N],root;
int p[N][15],S[15];
bool vis[N],in[N];
int max(int a,int b){return a>b?a:b;}
int dfs(int u,int fa,int deep){
	int res=deep,i,v;
	p[u][0]=fa;
	lv[u]=deep;
	vis[u]=1;
	for(i=0;i<g[u].size();i++){
		v=g[u][i];
		if(!vis[v])res=max(res,dfs(v,u,deep+1));
	}
	return res;
}
void init(int n){
	int i,j,level;
	for(S[0]=i=1;i<15;i++)S[i]=S[i-1]<<1;
	memset(vis,0,sizeof(vis));
	memset(p,-1,sizeof(p));
	level=dfs(root,-1,1);
	for(i=1;S[i]<=level;i++)for(j=1;j<=n;j++){
		if(p[j][i-1]!=-1)p[j][i]=p[p[j][i-1]][i-1];
	}
}
int LCA(int x,int y){
	if(lv[x]<lv[y])x^=y,y^=x,x^=y;
	int i,log;
	for(log=0;S[log]<=lv[x];log++);
	for(i=--log;i>=0;i--)if(lv[x]-S[i]>=lv[y])x=p[x][i];
	if(x==y)return x;
	for(i=log;i>=0;i--){
		if(p[x][i]!=-1&&p[x][i]!=p[y][i])x=p[x][i],y=p[y][i];
	}
	return p[x][0];
}
int main(){
	int n,m,ca=1,i,cnt,a,b,c,T,ans;
	char st[42],ed[42];
	scanf("%d",&T);
	while(T--){
		scanf("%d%d",&n,&m);
		cnt=0;m1.clear();
		for(i=0;i<n;i++)g[i].clear();
		for(i=1;i<n;i++){
			scanf("%s%s",st,ed);
			if(!m1[st])m1[st]=++cnt;
			if(!m1[ed])m1[ed]=++cnt;
			a=m1[st]-1,b=m1[ed]-1;
			g[b].push_back(a);
			in[a]=1;
		}
		for(i=0;i<n;i++)if(!in[i]){root=i;break;}
		init(n);
		while(m--){
			scanf("%s%s",st,ed);
			a=m1[st]-1,b=m1[ed]-1;
			c=LCA(a,b);
			ans=lv[a]-lv[c];
			if(c!=b)ans++;
			printf("%d\n",ans);
		}
	}
	return 0;
}


 

C# 的 Dapper 库高级进阶:刨根问底的深度解析 通过今天的探索,我们了解了 Dapper 的一些高级功能,包括如何处理复杂的查询、执行批量操作以及如何优化性能。希望这篇深入浅出的文章能帮助你在实际项目中更好地运用 Dapper!🎈好了,小伙伴们,今天的分享就到这里啦!如果你有任何疑问或者想要分享自己的经验,请在评论区留言。我们下次再见!👋上述示例代码仅供参考,实际使用时请根据项目需求进行适当调整。✨Dapper 官方文档Dapper 性能优化指南Dapper 动态参数使用来同时执行多个查询。利用Execute和Query方法来简化 SQL 调用。 阅读详情

相关推荐

哈密顿-雅可比不等式:连接最优控制与优化算法的自然物理原理

在控制理论与优化算法之间,存在一个深刻而实用的桥梁。最优控制理论旨在通过设计控制输入,使动态系统在时间维度上达到性能最优,其核心数学工具如庞特里亚金极大值原理和哈密顿-雅可比-贝尔曼方程,为解决连续时间系统的优化问题提供了优雅框架。然而,这些方法在高维非凸问题中面临求解难题。哈密顿-雅可比不等式作为一种松弛方法,通过构造李雅普诺夫函数并验证一个不等式条件,转而寻求性能有保障且易于实现的次优解,其本质是保证系统能量衰减和性能上界。这一原理与耗散性理论紧密相连,体现了自然物理系统(如阻尼振动)中能量耗散的普遍规

weixin_30582943的博客 313

hdu 4547(tarjan LCA)

比较简单LCA的题目了, 主要就是根据题目所给出的树边建立有向的树, 然后从树根开始进行LCA, 要注意的是,题目中给的操作有两种,第一种是从当前点到父亲结点,第二种是从当前点到子树中的任意一个点。    CD操作 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total...

weixin_34208283的博客 232

k8s 查看cpu使用率最高的pod

在 Kubernetes 中,可以使用命令查看 Pod 的资源使用情况,从而找到 CPU 使用率最高的 Pod。

u010674101的专栏 3345

2013金山西山居初赛第一场(hdu4545-hdu4547)

A题:用短串去长串里里面找自己(找的时候把字符转换一起考虑),找到就是happy; 代码: #include #include int mat[30][30]; char s[1100],str[1200],a[3],b[3]; int main() { int cas,m,i,cass; scanf("%d",&cass); for(cas=1;cas<

Lazier’s blog 1026

5分钟搞定阿里云千问大模型API申请:手把手教你获取API Key

本文提供了一份高效的阿里云通义千问大模型API Key获取实战指南。通过清晰的步骤,帮助开发者在五分钟内完成从账号准备、精准导航控制台到创建并验证API Key的全过程,并强调了密钥安全管理和基础调用测试的重要性,助力快速集成AI能力。

ol789012345的博客 1345

CANOCO5.0实现冗余分析(RDA)最详细步骤

在地理及生态领域会常使用RDA分析,RDA的实现路径也有很多,今天介绍一下CANOCO软件的实现方法。1.不同样点和环境因子之间夹角是锐角 是正相关,是钝角是负相关。2.夹角越大 说明相关性较小,夹角越小,相关性越大。得有不同的物种或者样点数值,再加上环境因子数据。3.箭头越长 相关性越大。时间调整到2010年。

Along6的博客 1万+

2013金山西山居创意游戏程序挑战赛——初赛(2)

2013金山西山居创意游戏程序挑战赛——初赛(2)

GROWING 714

战舰V3移植CANopenNode并驱动电机全流程

第三部分是电机的对象字典(也就是节点的OD)中的索引,长度2个字节。索引发送的是小段模式,比如这一部分为0X40 0X60,实际操作的索引地址为0X6040。第一部分是COB-ID,长度1个字节,电机的node-ID默认为0x01,所以报文ID一直是601。第五部分是要写入的数据,数据发送的时候是小端模式,低字节数据先发送,长度由第二部分决定。配置定时器6,时间为1ms,根据公式计算得到参数PSC取72-1,ARR取1000-1。第二部分是CMD,长度1个字节,其实就是数据部分的长度,

qq_50526837的博客 3045

2013金山西山居创意游戏程序挑战赛——初赛(3)

2013金山西山居创意游戏程序挑战赛——初赛(3)

GROWING 762

AWD线下攻防赛总结

在本地组策略编辑器里面,依次展开计算机配置—>管理模板—>Windows组件—>远程桌面服务—>远程桌面会话主机—>连接—>限制连接的数量。8.Web目录环境查找相关可疑文件:jpg/png/rar,属性、解压。进程线程:netstat / ps -aux/netstat -apt。4.查看/etc/init.d/rc.local中启动服务有无异常。1.不使用默认口令,修改成复杂的,并确保和web环境连接。5.使用脚本开启进程监控、目录监控、流量监控。文件操作监控.exe/御剑文件监控.exe。

XuJL89的博客 630

innovus:ccopt_design流程

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?spec文件可以只创建一次,无需多次创建。2)virtual balance阶段。3)Full Balancing阶段。4)Clock Routing阶段。1)clustering阶段。

m0_61544122的博客 2476

2013金山西山居创意游戏程序挑战赛——初赛(4)

2013金山西山居创意游戏程序挑战赛——初赛(4)

GROWING 775

基于sklearn实现LDA主题模型(附实战案例)

目录LDA主题模型1.LDA主题模型原理2.LDA主题模型推演过程3.sklearn实现LDA主题模型(实战)3.1数据集介绍3.2导入数据3.3分词处理 3.4文本向量化3.5构建LDA模型3.6LDA模型可视化 3.7困惑度 其实说到LDA能想到的有两个含义,一种是线性判别分析(Linear Discriminant Analysis),一种说的是概率主题模型:隐含狄利克雷分布(Latent Dirichlet Allocation,简称LDA)。 现在讨论的是主题模型

m0_64336780的博客 2万+

2013金山西山居创意游戏程序挑战赛——初赛(1)

点击打开链接

GROWING 680

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

2013金山西山居创意游戏程序挑战赛——初赛(1)题解

刚水了这场比赛:2013金山西山居创意游戏程序挑战赛——初赛(1)。 简要题解如下: 1001 魔法串: 问第二个串能不能变成第一个串。 显然的DP问题。dp[i][j]表示第二串前j个变成第一串前i个是否可行。 转移就是 if (dp[i][j-1]==1) dp[i][j]=1; if (dp[i-1][j-1]==1&&g[t[j]][s[i]]==1){dp[i][j]=1;

Necs的小窝 1065

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

ACM之金山西山居创意游戏程序挑战赛-初赛

生日猜猜猜 Problem Description 小明对生日十分看重,因为他可以得到祝福,可以和朋友亲人一起分享快乐,可以为自己的人生做一次总结,并且...能够收到好多礼物! 不过小明是个神秘的人,不会轻易告诉你他的生日,现在他想到一个办法,让你去猜他的生日是哪一天。 小明会告诉你如下三个信息: 1. 出生月份和出生日子的最大公约数; 2. 出生月份和出生日子的最小公倍数;

Magicandangle的专栏 857

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

金山西山居初赛第三场

http://acm.hdu.edu.cn/showproblem.php?pid=4551 hdu4551 生日猜猜猜 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 224    Accepted Submissio

libing923的专栏 2179

2013金山西山居创意游戏程序挑战赛——初赛(1) A 魔法串

小明和他的好朋友小西在玩一个新的游戏,由小西给出一个由小写字母构成的字符串,小明给出另一个比小西更长的字符串,也由小写字母组成,如果能通过魔法转换使小明的串和小西的变成同一个,那么他们两个人都会很开心。这里魔法指的是小明的串可以任意删掉某个字符,或者把某些字符对照字符变化表变化。如:     小西的串是 abba;     小明的串是 addba;     字符变化表 d b (表示d能转

程序员的冷浪漫 1857

金山西山居初赛第四场

http://acm.hdu.edu.cn/showproblem.php?pid=4554 hdu4554 叛逆的小明 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 77    Accepted Submission(s

libing923的专栏 1672

金山西山居2013程序挑战赛初赛 第一题

Problem Description   小明和他的好朋友小西在玩一个新的游戏,由小西给出一个由小写字母构成的字符串,小明给出另一个比小西更长的字符串,也由小写字母组成,如果能通过魔法转换使小明的串和小西的变成同一个,那么他们两个人都会很开心。这里魔法指的是小明的串可以任意删掉某个字符,或者把某些字符对照字符变化表变化。如:     小西的串是 abba;     小明的串是 ad

Maverick 1182

金山西山居2013程序挑战赛初赛 第三题

Problem Description     在Windows下我们可以通过cmd运行DOS的部分功能,其中CD是一条很有意思的命令,通过CD操作,我们可以改变当前目录。   这里我们简化一下问题,假设只有一个根目录,CD操作也只有两种方式:      1. CD 当前目录名\...\目标目录名 (中间可以包含若干目录,保证目标目录通过绝对路径可达)   2. CD .. (返回当前

Maverick 1219

金山西山居初赛第二场

http://acm.hdu.edu.cn/showproblem.php?pid=4548 hdu4548 美素数 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 0    Accepted Submission(

libing923的专栏 1321

金山西山居初赛第三场 HDU 4551~HDU 4553

第一个题就不说了,注意闰年的2月29。 1 #include <map> 2 #include <set> 3 #include <list> 4 #include <queue> 5 #include <stack> 6 #include <cmath> 7 #include &...

135

2013金山西山居创意游戏程序挑战赛——初赛(1) 魔法串

2013金山西山居创意游戏程序挑战赛——初赛(1) 魔法串  题目:http://acm.hdu.edu.cn/showproblem.php?pid=4545 题目: Problem Description   小明和他的好朋友小西在玩一个新的游戏,由小西给出一个由小写字母构成的字符串,小明给出另一个比小西更长的字符串,也由小写字母组成,如果能通过魔法转换使小明的串和小西的变成同一个

ChampionLai 1153

金山西山居初赛第二场 美素数

美素数 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 0 Accepted Submission(s): 0 Problem Description   小明对数的研究比较热爱,一谈到数,脑子里就涌现出好多数的问题,今...

weixin_30302609的博客 127
上一篇: zoj 3705 Applications
下一篇: 金山西山居初赛第二场
libing923
博客等级 码龄15年 12粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值