HDU - 2262 Where is the canteen 高斯消元求期望

python画弗里德曼(Friedman) 检验和秩和检验(Nemenyi)检验图 python画弗里德曼(Friedman) 检验和秩和检验(Nemenyi)检验图 画好后效果图 实现代码如下 import matplotlib.pyplot as plt #算法平均排名 _alg_=[1.405,2.643,2.786,2.167] y=[1,2,3,4]#alg1,alg2,alg3,alg4 通过Nemenyi测试计算得到的临界值CD CD=1.024 h_CD=CD/2 plt.figure(figsize=(10,6)) plt.scatter(_alg_,y,s=10 阅读详情

题目:有一个n*m的字符矩阵,你要从初始位置到商店去,你每次都选择去一个可达的点(上下左右4个方向),求期望步数。

'@'初始位置,有且只有一个

'#'不能走的点

'$'商店,可能有多个

'.'可以走的点

思路:广搜以便给可达的点编号,列方程高斯消元即可

代码:

#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<iostream>
#include<algorithm>
#include<ctime>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<stack>
#include<list>
#include<numeric>
using namespace std;
#define LL long long
#define ULL unsigned long long
#define INF 0x3f3f3f3f3f3f3f3f
#define mm(a,b) memset(a,b,sizeof(a))
#define PP puts("*********************");
template<class T> T f_abs(T a){ return a > 0 ? a : -a; }
template<class T> T gcd(T a, T b){ return b ? gcd(b, a%b) : a; }
template<class T> T lcm(T a,T b){return a/gcd(a,b)*b;}
// 0x3f3f3f3f3f3f3f3f

int dr[]={-1,1,0,0};
int dc[]={0,0,-1,1};

const double _eps = 1e-12;
const int MAX = 300;
int equ, var;
double mat[MAX][MAX], x[MAX];
int sign(double x) {return (x > _eps) - (x < -_eps);}
int Gauss() {
	int i, j, k, col, max_r, free_num, free_index;
	double ta, tmp;
	for(i = 0; i <= var; ++i) {
		x[i] = 0;
	}
	for(k = col = 0; k < equ && col < var; ++k, ++col) {
		max_r = k;
		for(i = k + 1; i < equ; ++i) {
			if(sign(fabs(mat[i][col]) - fabs(mat[max_r][col])) > 0)
				max_r = i;
		}
		if(max_r != k) {
			for(j = k; j < var + 1; ++j)
				swap(mat[max_r][j], mat[k][j]);
		}
		if(sign(mat[k][col]) == 0)
            return 0;
		for(i = k + 1; i < equ; ++i) {
			if(sign(mat[i][col]) == 0) continue;
			ta = mat[i][col] / mat[k][col];
			for(j = col; j < var + 1; ++j)
				mat[i][j] -= mat[k][j] * ta;
		}
	}
	for(i = k; i < equ; ++i) {
		if(sign(mat[i][col]))
			return 0;
	}
	if(k < var)
        return 0;
	for(i = var - 1; i >= 0; --i) {
		tmp = mat[i][var];
		for(j = i + 1; j < var; ++j)
			if(sign(mat[i][j]) != 0)
				tmp -= mat[i][j] * x[j];
		x[i] = tmp / mat[i][i];
	}
	return 1;
}

const int maxn=300;
struct Node{
    int r,c;
    Node(int _r=0,int _c=0):r(_r),c(_c){}
};
char str[20][20];
int vis[20][20],num[20][20],cnt;
int n,m;
bool judge(int r,int c){
    if(r<0||r>=n||c<0||c>=m||str[r][c]=='#')
        return false;
    return true;
}
int bfs(int r,int c){
    queue<Node> Q;
    mm(vis,-1);
    mm(num,0);
    cnt=0;
    vis[r][c]=cnt++;
    Q.push(Node(r,c));
    int flag=0;
    while(!Q.empty()){
        Node now=Q.front();
        Q.pop();
        if(str[now.r][now.c]=='$')
            flag=1;
        for(int i=0;i<4;i++){
            r=now.r+dr[i];
            c=now.c+dc[i];
            if(!judge(r,c)) continue;
            num[now.r][now.c]++;
            if(vis[r][c]!=-1) continue;
            vis[r][c]=cnt++;
            Q.push(Node(r,c));
        }
    }
    return flag;
}
void build(){
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++){
            if(vis[i][j]==-1)
                continue;
         //   printf("%d\n",num[i][j]);
            int pos=vis[i][j];
            if(str[i][j]=='$'){
                mat[pos][pos]=1;
                mat[pos][cnt]=0;
                continue;
            }
            mat[pos][pos]=1;
            for(int k=0;k<4;k++){
                int r=i+dr[k];
                int c=j+dc[k];
                if(!judge(r,c)) continue;
                int t=vis[r][c];
                mat[pos][t]=-1.0/num[i][j];
                mat[pos][cnt]+=1.0/num[i][j];
            }
        }
}
int main(){

    while(~scanf("%d%d",&n,&m)){
        for(int i=0;i<n;i++)
            scanf("%s",str[i]);
        int r,c;
        for(int i=0;i<n;i++)
            for(int j=0;j<m;j++)
                if(str[i][j]=='@')
                    r=i,c=j;
        if(!bfs(r,c)){
            printf("-1\n");
            continue;
        }
        mm(mat,0);
        equ=var=cnt;
        build();
        if(Gauss()){
            printf("%.6f\n",x[0]);
        }
        else{
            printf("-1\n");
        }
    }
    return 0;
}


LoRA 完整解析:从理论到实践 LoRA(低秩适应)是一种高效的大模型微调方法,通过添加少量可训练参数(低秩矩阵)来适配新任务,避免全参数微调的高成本。其核心是将权重更新ΔW分解为两个小矩阵B×A的乘积,大幅减少训练参数量(仅0.1-1%)。LoRA基于内在维度假设,通过低秩约束捕捉核心任务信息,兼具效率与效果。实际应用中,常用配置为秩r=16-32,目标模块选择注意力层的q_proj和v_proj,学习率比全参数微调大10倍(约1e-4)。优势包括参数高效(内存降低60-80%)、多任务适配灵活、保留预训练知识等,已成为大模型微调的主流 阅读详情

相关推荐

论文精读-ReTransformer ReRAM-based Processing-in-MemoryArchitecture for Transformer Acceleration

Transformer已经成为一种流行的深度神经网络(DNN)模型,用于神经语言处理(NLP)应用,并在神经机器翻译、实体识别等方面表现出优异的性能。然而,其在自回归解码器中的规模化点积注意机制在推理过程中带来了性能瓶颈。Transformer也是计算和内存密集型的,需要硬件加速解决方案。

a284365的博客 1922

HDU - 2262 Where is the canteen 高斯消元求期望(浮点数)

hdu 2262 题意:就是现在在一个n*m规模的趋于上从‘@’处出发开始, 每次都随机向前后左右四个方向中选择可以走的方向进入, ‘#‘不可走, 不能越过边界, 现在问到达终点’$’的期望步数, 终点可能有多个, 输入保证一定有起点 n, m <= 15, 如果无法到达任何一个终点输出-1 思路:期望套路题,期望一般倒着求. 设dp[i]表示从当前位置到出口需要走的期望步数,显然终点的d

Marcus-Bao的个人主页 720

低速信号设计之 LPC 篇

摘要:LPC总线作为服务器低速信号设计的关键技术,在BIOS芯片连接、Super I/O芯片控制和嵌入式管理等方面发挥着重要作用。其采用33MHz时钟频率和4位并行传输机制,理论速率达16.5MB/s。设计时需重点关注布线长度(建议<10cm)、信号完整性(45°走线、合理层间隔离)和过孔优化等要点。典型应用案例表明,通过规范设计可确保在工业控制等复杂环境中稳定工作。LPC总线凭借低成本、低引脚数和良好兼容性,仍是服务器低速外设连接的重要解决方案。

qq_16237389的博客 1164

高斯消元 模板 hdu2262 判断无穷解 接受无穷解 两种

有多个人找我要高斯消元模板,还提出不同要求,一劳永逸,发一个。 最初自己只用 不接受有某个x无穷多解的模板,后来有人来问我,于是自己弄了一个。 //模板1:每个x都有解则解出所有x,并返回1,如果有x无穷解,返回0(不解方程)。 bool gauss1(int n) { int i,j,k,r; for(i=0;i<n;++i) { //数据稳定性优化

QZQ 1041

麒麟V10(arm)配置本地离线yum源

麒麟V10(arm)配置本地离线yum源

myfm2java的博客 7884

平均电流控制模式BUCK变换器的环路设计

引言 电压模式的BUCK变换器存在的常见缺点: 1、在没有前馈补偿的时候,对输入源的跳动响应较慢; 2、在不加入电感电流控制的时候,由于不直接对电感电流进行采样,因此不能实时的控制电感电流,有可能在某些负载极端变化时,系统直接奔溃; 3、LC组成的二阶系统存在谐振点,谐振峰随负载变化而变化,不容易做到完全消除; 峰值电流模式的BUCK变换器存在的常见缺点: 1、占空比大于50%时,存在次谐波震荡的问题,需要添加斜坡补偿已解决该问题; 2、抗干扰能力较差; 3、峰值电流和平均电流间存在误差,不适合做PFC线路

c007106333的博客 1万+

HDU--2262(高斯消元,概率DP)

2015-04-1322:49:30 思路:参考了爱神的博客A的... 也改善了下高斯的模板。   首先给每个格子编号,假设某个格子(设为第 i 个)到终点的期望为Ei,考虑第 i 格的所有可行后继节点(可行节点的意思是这些后继节点可以到达终点)   记为En1,En2....Enk,总共k个,可列方程:Ei = (En1+En2+En3+ ... + Enk) / k + 1 ...

dingdi3021的博客 232

逆向工程实战:如何一步步破解京东APP的sign签名算法(附Frida脚本)

本文详细解析了京东APP的sign签名算法逆向工程实战,通过Frida脚本动态分析Java层和Native层的多层签名机制,揭示商业应用的加密协议设计。文章提供了完整的逆向工程方法论与工具链,帮助开发者深入理解移动应用安全防护体系,提升安全防御能力。

weixin_28622215的博客 915

HDU2262 Where is the canteen 数学期望 高斯消元

HDU2262 Where is the canteen 题目链接:[http://acm.hdu.edu.cn/showproblem.php?pid=2262] Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2364 A...

qq_43710979的博客 255

Power Bi数据分析案例:在线零售平台销售数据分析

该数据集为,涵盖2023年1月至2024年3月,包含用户群体特征、购买行为、产品偏好以及参与度指标。用户维度:Customer_ID,Age,Gender,City产品维度:Product_Category,Unit_Price事实表:Order_ID,Quantity,Total_Amount,Discount_Amount,Rating,Delivery_Time在Power Query当中处理销售日期列,并新增年龄段、浏览页面分段列。

2301_79586168的博客 1277

Matlab安装Embedded Coder Support Package for Texas Instruments C2000 Processors教程

Matlab安装Embedded Coder Support Package for Texas Instruments C2000 Processors

m0_69133594的博客 2822

hdu2262——Where is the canteen

Where is the canteen Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 1143    Accepted Submission(s): 327 Problem Description After a l

Alex 1031

【软件系统架构】系列六: SysML(系统建模语言)

SysML(系统建模语言)是OMG组织基于UML扩展的专用建模语言,用于支持复杂系统全生命周期建模。它包含9类标准图,核心建模元素包括块(Block)、端口接口、需求和约束等。与UML相比,SysML更适用于软硬件结合的复杂系统建模。作为MBSE的核心工具,SysML通过结构图、行为图、需求图和参数图实现系统设计、需求追踪和性能验证。虽然面临学习门槛高、工具成本高等挑战,但随着AI融合和国产化替代趋势,SysML在航空航天、汽车电子等领域的应用日益广泛。SysML v2将简化语法并提升互操作性,推动系统工程

moton2017的博客 2382

hdu2262 Where is the canteen(高斯消元求期望dp)

Problem Description After a long drastic struggle with himself, LL decide to go for some snack at last. But when steping out of the dormitory, he found a serious problem : he can’t remember where is t

退役的铜牌狗 393

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

[ACM] hdu 2262 Where is the canteen (高斯消元求期望)

Where is the canteen Problem Description After a long drastic struggle with himself, LL decide to go for some snack at last. But when steping out of the dormitory, he found a serious problem

逆风的方向 更适合飞翔 2835

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

HDU 2262 Where is the canteen(高斯求期望问题)

转载请注明出处,谢谢http://blog.youkuaiyun.com/acm_cxlove/article/details/7854526       by---cxlove 题目:有一个地图,一个人从某个点出发,问走到花园的期望步数为多少 http://acm.hdu.edu.cn/showproblem.php?pid=2262 基础的高斯求概率。 设某点的期望步数为Ei。 那么目标

窝不是爱酱,喵~~~~ 3401

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

HDU 2262 Where is the canteen 概率DP 高斯消元

题目大意: 就是现在在一个n*m规模的趋于上从‘@’处出发开始, 每次都随机向前后左右四个方向中选择可以走的方向进入, '#‘不可走, 不能越过边界, 现在问到达终点’$'的期望步数, 终点可能有多个, 输入保证一定有起点 n, m 大致思路: 首先可以发现如果将可以到达的一次编号, 用dp[i]表示从编号为i的点到达终点的期望步数的话, 不难发现状态传转移方程dp[i] = si

Gatevin的专栏 1491

HDU2262;Where is the canteen(高斯消元+期望)

传送门 题意 给出一张图,LL从一个点等概率走到上下左右位置,询问LL从宿舍走到餐厅的步数期望 分析 该题是一道高斯消元+期望的题目 难点在于构造矩阵,我们发现以下结论 设某点走到餐厅的期望为Ek 1.当该点为餐厅,Ek=0 2.\(Ek=\sum_{i=1}^{cnt}Enexti-1\) 我们先BFS将可达点标号,再构建矩阵,再高斯消元,最后A[vis[sx][sy]][id]为所求...

anquan1533的博客 190

HDU 2262 Where is the canteen 期望 + 高斯消元

题意:LL从起点’@’出发,在每个点等概率的向可以走的点走。’$’是目的地,可能有多个。问从起点到目的地走的步数的期望?思路:每个点假设E1E2...Ek为Ei周围的点的期望假设E_1E_2...E_k为E_i周围的点的期望Ei=(E1+E2+...+Ek)/k+1E_i =(E_1+E_2+...+E_k)/k +1E1+E2+...+Ek−k∗Ei=−kE_1+E_2+...+E_k-k*E_i

NM的专栏 849

hdu2262 Where is the canteen

Where is the canteen Time Limit: 10000/5000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 1313Accepted Submission(s): 384 Problem Description ...

diankeng5481的博客 222

Where is the canteen高斯消元

http://acm.hdu.edu.cn/showproblem.php?pid=2262 主要是递推迭代有点多 #include<bits/stdc++.h> #define ls o<<1 #define rs o<<1|1 #define MS(x,y) memset(x,y,sizeof(x)) #define MC(x,y) memcp...

ujn20161222的博客 290

HDU 2262 Where is the canteen (高斯消元、概率)

题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2262 题意:n*m的地图,有一个起点,有多个出口,上下左右走,有的格子不能走,求从起点走到一个出口的期望步数是多少。 第一次做浮点数高斯消元求期望的题。   算是复习了一下高斯消元的知识,发现对于以前学过的东西掌握的还是不好...很多地方都想不起来了...要多复习啊。 关于本题推

Benjamin_Z的博客 728

HDU 2262 Where is the canteen 期望dp+高斯消元

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2262 Where is the canteen Time Limit: 10000/5000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) 问题描述 After a long drastic struggle with hims...

weixin_30650039的博客 201

HDOJ 2262 Where is the canteen (高斯消元 + bfs)

先让我吐槽几句,这道题卡了我三天。主要是没有找到好的高斯消元的模板以及某些题解博客的误导。原来以为百度google到的资源是万能的,这次充分体现了团结就是力量,该抱大腿就抱大腿。情人节全献给了这道题,不过也不孤单,一直都是在讨论和头脑风暴啊中度过。希望能顺利地写完这篇题解,然后给感冒重症患者放个小假。^_^ 题意:@是起点,$是终点,#不能经过,.可以经过。求从起点到终点的期望步数。注意

Muya 578

hdu2262 Where is the canteen高斯+期望

Where is the canteen Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 590    Accepted Submission(s): 148 Problem Description After a lo

Shirley 2126

hdu2262

#include #include #include #include #include #include #define eps 1e-8 #define maxn 226 using namespace std; char s[22][22]; int n,m; int cnt; struct node { int x,y; node(){}; node(int xx,

1495
上一篇: POJ - 2151 Check the difficulty of problems 概率
下一篇: ZOJ - 3624 Count Path Pair 组合计数
我不会额
博客等级 码龄11年 2粉丝 173原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值