#Z1643. 轻拍牛头


一,86分解法

#include <bits/stdc++.h>
using namespace std;
long long n,ton[10000001],maxn;
struct nu
{
  long long id,par;
} niu[10000001],tn[1000001];
bool cmp(nu a,nu b)
{
  if(a.par == b.par) return a.id < b.id;
  return a.par < b.par;
}
int main()
{
  scanf("%lld",&n);
  for(int i = 1; i <= n; i++)
  {
    niu[i].id = i;
    scanf("%lld",&niu[i].par);
    tn[i] = niu[i];
    maxn = max(maxn,niu[i].par);
  }
  sort(niu + 1,niu + n + 1,cmp);
  for(int i = 1; i < n; i++)
  {
    int t = niu[i].par,j;
    if(niu[i].par == niu[i + 1].par) j = 1;
    else j = 2;
    while(1)
    {
      t *= j;
      if(t > maxn) break;
      ton[t]++;
      t /= j;
      j++;
    }
  }
  for(int i = 1; i <= n; i++) printf("%lld\n",ton[tn[i].par]);
  return 0;
}

二,AC解法

#include <bits/stdc++.h>
using namespace std;
int n,tong[1000010],in[1000010],ans[1000010],ma;
int main()
{
  scanf("%d",&n);
  for(int i = 1; i <= n; i++)
  {
    scanf("%d",&in[i]);
	tong[in[i]]++;	
  	ma = max(ma,in[i]);
  }
  for(int i = 1; i <= ma; i++)
    if(tong[i] != 0)
      for(int j = i; j <= ma; j += i)
        ans[j] += tong[i];
  for(int i = 1; i <= n; i++) printf("%d\n",ans[in[i]] - 1);
  return 0; 
}

### 牛头刨床的 Ansys 仿真方法 #### 1. 几何模型建立 首先需要创建牛头刨床的几何模型。可以使用专业的三维建模软件如 SolidWorks、ProE 等进行建模,然后将模型导入到 Ansys 中。在建模时,要根据实际的牛头刨床结构,精确绘制各个部件,包括床身、滑枕、刀架等,同时要注意部件之间的装配关系和尺寸精度。 #### 2. 材料属性定义 在 Ansys 中为模型的各个部件赋予合适的材料属性。例如,床身通常采用铸铁材料,其弹性模量、泊松比、密度等参数需要准确输入。可以在 Ansys 的材料库中查找相应材料的属性,也可以手动输入自定义材料的参数。 #### 3. 网格划分 对导入的几何模型进行网格划分。网格的质量和密度会影响仿真结果的准确性和计算效率。对于关键部位,如滑枕与导轨的接触区域、刀架与工件的作用区域等,可以采用较细的网格划分;而对于一些对结果影响较小的区域,可以适当采用较粗的网格。Ansys 提供了多种网格划分方法,如四面体网格、六面体网格等,可以根据模型的特点选择合适的方法。 #### 4. 边界条件施加 根据牛头刨床的实际工作情况,施加相应的边界条件。例如,床身底部通常是固定约束,滑枕与导轨之间存在滑动约束,刀架对工件施加切削力等。在施加边界条件时,要准确模拟实际的力学和运动情况。 #### 5. 求解设置 根据仿真的目的,选择合适的求解器和求解类型。如果是进行静态结构分析,求解器会计算模型在静态载荷作用下的应力、应变等结果;如果是进行动力学分析,如模态分析、谐响应分析等,则需要设置相应的求解参数。 #### 6. 结果后处理 求解完成后,对仿真结果进行后处理。可以查看模型的应力分布、应变分布、位移分布等结果,通过云图、矢量图等方式直观地展示结果。还可以对结果进行数据提取和分析,评估牛头刨床的性能是否满足设计要求。 ### 案例 以下是一个简单的牛头刨床滑枕的静态结构分析案例: ```python # 导入 Ansys 相关模块 import ansys.mapdl.core as pymapdl # 启动 Ansys MAPDL mapdl = pymapdl.launch_mapdl() # 清除当前数据库 mapdl.clear() # 定义材料属性 mapdl.prep7() mapdl.mp('EX', 1, 2.0e11) # 弹性模量 mapdl.mp('PRXY', 1, 0.3) # 泊松比 # 创建滑枕的几何模型(这里简化为一个长方体) mapdl.blc4(0, 0, 1, 0.1, 0.2) # 划分网格 mapdl.et(1, 185) # 选择单元类型 mapdl.esize(0.05) # 网格尺寸 mapdl.vmesh('all') # 施加边界条件 mapdl.nsel('S', 'LOC', 'X', 0) # 选择滑枕一端的节点 mapdl.d('all', 'UX', 0) # 约束 X 方向位移 mapdl.d('all', 'UY', 0) # 约束 Y 方向位移 mapdl.d('all', 'UZ', 0) # 约束 Z 方向位移 mapdl.nsel('S', 'LOC', 'X', 1) # 选择滑枕另一端的节点 mapdl.f('all', 'FX', 1000) # 施加 X 方向的力 # 求解 mapdl.solve() # 后处理 mapdl.post1() mapdl.set(1, 1) # 选择第一个载荷步 mapdl.plnsol('S', 'EQV') # 显示等效应力云图 # 关闭 Ansys MAPDL mapdl.exit() ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值