加强赛第二轮题解

2017/3/13
类型:简单题练习


A.POJ 1003 Hangover

题解:先将板所能到达的距离打个表s[],每次传入距离c后寻找第一个比c大的s[i]i 即为所求答案。

#include "iostream"
#include "cstdio"
#include "algorithm"
#include "cmath"
using namespace std;
#define eps 1e-6
double s[10000];
void init(){
  double sum ;
  for(int i=1;i<10000;i++){
    sum = 0;
    for(int j=1;j<=i;j++)
      sum += 1.0/(j+1);
    s[i]=sum;
  }
}
int main(){
  double c;
  init();
  while(scanf("%lf",&c)!=EOF && c){
    int ans;
    for(int i=1;i<10000;i++){
      if(s[i]-c>eps) { ans=i;break; }
    }
    printf("%d card(s)\n",ans);
  }
  return 0;
}

B.POJ 2291 Rotten Ropes

题解:不断进行尝试,从第一根绳子开始测试,如果断掉绳子承受的重量比max_w大则更新max_w

#include "iostream"
#include "cstdio"
#include "algorithm"
using namespace std;

int t,n,s[1000+10],max_w;
void solve(){
  sort(s,s+n);
  int tmp = n;
  max_w=s[0]*n;
  for(int i=1;i<n;i++){
    max_w = max(max_w,s[i]*(n-i));
  }
}
int main(){
  scanf("%d",&t);
  while(t--){
    scanf("%d", &n);
    for(int i=0;i<n;i++)  scanf("%d",s+i);
    solve();
    printf("%d\n",max_w);
  }
  return 0;
}

C.POJ 3086 Triangular Sums

题解: 按照公式进行计算即可,为了避免重复计算浪费时间 sum 并不清空。

#include "iostream"
#include "cstdio"
using namespace std;

const int max_n = 310;
int t,n,kase;
long long T[max_n],W[max_n];
void init(){
  long long sum = 0;
  for(int i=1;i<max_n;i++){
    sum = sum + (i*(i+2)*(i+1)/2);
    W[i] = sum;
  }
}
int main(){
  init();
  kase=0;
  scanf("%d",&t);
  while(t--){
    scanf("%d", &n);
    printf("%d %d %lld\n",++kase,n,W[n]);
  }
  return 0;
}

D.POJ 1663 Number Steps

题解:看出两个直线的方程,找到其在方程上点所具有的特点进行判断即可。特点是两个方程上如果x为奇数,那么点的step为x+y-1,为偶数则是x+y。

#include "iostream"
#include "cstdio"
using namespace std;

int main(){
  int t,x,y;
  scanf("%d",&t);
  while(t--){
    scanf("%d%d", &x,&y);
    if(x==y || x-2==y){
      if(x==y){
        if(x&1) printf("%d\n", 2*x-1);
        else    printf("%d\n", 2*x);
      }else{
        if(x&1) printf("%d\n", x+y-1);
        else    printf("%d\n", x+y);
      }
    }else printf("No Number\n");
  }
  return 0;
}

E.POJ 1852 Ants

题解:
1.最短时间:当所有蚂蚁都朝着距离最近的那端爬,便不会相遇,所以最短时间就是这n只蚂蚁中所处位置最靠中间 的那一个爬到两端相对较短的那一端所需的时间。
2.最长时间:如果忽视蚂蚁的区别,当两个蚂蚁相遇时互相穿过,也就是说对于每个蚂蚁的最长时间为max(s[i],L-s[i])。

#include "iostream"
#include "cstdio"
#include "algorithm"
#include "cmath"
using namespace std;

const int M = 1e6+10;
int t,n,L,s[M];
int Min , Max , Marki ;

void solve(){
  Min = Max = -M;
  for(int i=0;i<n;i++){
    Min = max(Min,min(s[i],L-s[i]));
    Max = max(Max,max(s[i],L-s[i]));
  }
}
int main(){
  scanf("%d",&t);
  while (t--) {
    scanf("%d%d",&L,&n);
    for(int i=0;i<n;i++)  scanf("%d", s+i);
    solve();
    printf("%d %d\n",Min,Max);
  }
  return 0;
}

转载于:https://www.cnblogs.com/WArobot/p/6539112.html

内容概要:该PPT详细介绍了企业架构设计的方法论,涵盖业务架构、数据架构、应用架构和技术架构四大核心模块。首先分析了企业架构现状,包括业务、数据、应用和技术四大架构的内容和关系,明确了企业架构设计的重要性。接着,阐述了新版企业架构总体框架(CSG-EAF 2.0)的形成过程,强调其融合了传统架构设计(TOGAF)和领域驱动设计(DDD)的优势,以适应数字化转型需求。业务架构部分通过梳理企业级和专业级价值流,细化业务能力、流程和对象,确保业务战略的有效落地。数据架构部分则遵循五大原则,确保数据的准确、一致和高效使用。应用架构方面,提出了分层解耦和服务化的设计原则,以提高灵活性和响应速度。最后,技术架构部分围绕技术框架、组件、平台和部署节点进行了详细设计,确保技术架构的稳定性和扩展性。 适合人群:适用于具有一定企业架构设计经验的IT架构师、项目经理和业务分析师,特别是那些希望深入了解如何将企业架构设计与数字化转型相结合的专业人士。 使用场景及目标:①帮助企业和组织梳理业务流程,优化业务能力,实现战略目标;②指导数据管理和应用开发,确保数据的一致性和应用的高效性;③为技术选型和系统部署提供科学依据,确保技术架构的稳定性和扩展性。 阅读建议:此资源内容详尽,涵盖企业架构设计的各个方面。建议读者在学习过程中,结合实际案例进行理解和实践,重点关注各架构模块之间的关联和协同,以便更好地应用于实际工作中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值