浙大ACM 1006 WA 求助

月光下的酒 2013-11-15 06:19:15
#include<stdio.h>
#include<string.h>
#define MAX 70
int main(void){
int k;
char ciphertext[MAX];
while(scanf("%d",&k)&&k!=0){
//输入
getchar();
gets(ciphertext);
int n=strlen(ciphertext);
int ciphercode[n];

int plaincode[n];
//得到密文数组
for(int i=0;i<n;i++){
if(ciphertext[i]=='_')
ciphercode[i]=0;
else if(ciphertext[i]=='.')
ciphercode[i]=27;
else ciphercode[i]=ciphertext[i]-96;
}

//得到原文代码数组
for(int i=0;i<n;i++){
int a=0;
while(a<=27){
if(ciphercode[i]==(a-i)%28||ciphercode[i]==(a-i+28)%28)
{
int x=k*i;
x=x%n;
plaincode[x]=a;
break;

}
a++;
}

}
//test
// for(int i=0;i<n;i++)
// printf("%d\n",plaincode[i]);
//test
for(int i=0;i<n;i++){
char c;
if(plaincode[i]==0)
c='_';
else if(plaincode[i]==27)
c='.';
else c=plaincode[i]+96;
putchar(c);

}
putchar('\n');


}
}
...全文
119 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
月光下的酒 2013-11-16
  • 打赏
  • 举报
回复
谢谢二楼!过了!
logiciel 2013-11-16
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<string.h> 
//改 #define MAX 70
#define MAX 71
int main(void){
  int k;
  char ciphertext[MAX];
  while(scanf("%d",&k)&&k!=0){
    //输入 
    getchar();
    gets(ciphertext);
    int n=strlen(ciphertext);
    int ciphercode[MAX];//改 int ciphercode[n];

    int plaincode[MAX];//改 int plaincode[n];
    //得到密文数组 
    for(int i=0;i<n;i++){
      if(ciphertext[i]=='_')
        ciphercode[i]=0;
      else if(ciphertext[i]=='.')
        ciphercode[i]=27;
      else ciphercode[i]=ciphertext[i]-96;
    }

    //得到原文代码数组
    for(int i=0;i<n;i++){
      /*改 
      int a=0;
      while(a<=27){
        if(ciphercode[i]==(a-i)%28||ciphercode[i]==(a-i+28)%28)
        {
          int x=k*i;
          x=x%n;
          plaincode[x]=a;
          break;

        }
        a++;
      }*/
      plaincode[k*i%n] = (ciphercode[i]+i)%28;
    } 
    //test
    //	for(int i=0;i<n;i++)
    //		printf("%d\n",plaincode[i]);
    //test
    for(int i=0;i<n;i++){
      char c;
      if(plaincode[i]==0)
        c='_';
      else if(plaincode[i]==27)
        c='.';
      else c=plaincode[i]+96;
      putchar(c);

    }
    putchar('\n');


  }
}
月光下的酒 2013-11-15
  • 打赏
  • 举报
回复
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1006
多无人机协同航迹规划的约束处理与进化优化一体化框架:从几何可修复性建模到多种群种群多样性维持策略(Matlab代码实现)内容概要:本文提出了一种针对多无人机协同航迹规划的约束处理与进化优化一体化框架,重点解决了复杂三维战场环境中多无人机协同飞行的路径规划问题。该框架创新性地结合了几何可修复性建模方法,以处理飞行过程中的各种硬性和软性约束,如障碍物规避、飞行高度限制、燃料消耗等,确保所规划航迹的安全性与可行性。同时,引入多种群种群多样性维持策略,有效增强了进化算法在全局搜索过程中的多样性和避免早熟收敛的能力,从而提高了优化效率与解的质量。整个框架通过Matlab代码实现了完整的仿真验证,展示了其在复杂场景下生成高效、安全、协同飞行路径的有效性与实用性。; 适合人群:具备一定编程基础和优化算法知识,从事无人机路径规划、智能优化算法研究或相关领域工作的研究生、科研人员及工程技术人员。; 使用场景及目标:① 解决复杂三维环境中多无人机协同路径规划问题,确保飞行安全与任务效率;② 提升进化算法在高维、多约束优化问题中的搜索能力和稳定性;③ 为相关领域的研究人员提供一套完整的Matlab代码实现方案,便于进一步研究与应用开发。; 阅读建议:此资源不仅提供了理论框架的设计思路,还配套了详细的Matlab代码实现,建议读者在学习过程中结合理论部分与代码实践,深入理解几何可修复性建模与多种群策略的具体实现方式,并尝试调整参数或应用场景以加深理解和促进创新。

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧