题目链接:https://vjudge.net/contest/147561#problem/A

题意:除法运算,abcde / fghij = n,从小到大输出,其中abcdefghij为0~9的不重复数字。

分析:

1、从小到大其实就是一大就跟着大。

2、不用枚举0~9的全排列,只用枚举其中一个数fghij即可,算出abcde,看是不是0~9都有。

Tip: sprintf(*,格式输入,*);用法,把目标数据转成char * 型。

 #include <bits/stdc++.h>

 using namespace std;

 int main()
{
//freopen("in.txt","r",stdin);
int n;
int kase = ;
while(scanf("%d",&n),n)
{
if(kase++)
puts("");
int cnt = ;
char buf[];
for(int fghij=;; fghij++)
{
int abcde = fghij*n;
sprintf(buf,"%05d%05d",abcde,fghij);
if(strlen(buf)>) break;
sort(buf,buf+); bool flag = true;
for(int i=; i<; i++)
if(buf[i]!=i+'')
{
flag = false;
break;
} if(flag)
{
cnt ++;
printf("%05d / %05d = %d\n",abcde,fghij,n);
} } if(cnt==)
printf("There are no solutions for %d.\n",n);
}
return ;
}

题目链接:https://vjudge.net/contest/147561#problem/B

题意:最大乘法,要你找出一个连续子序列乘积最大。

分析:打算枚举起点,终点,求和,肯定是TLE,利用前缀和的思想修改一下,变成前缀积。

 #include <bits/stdc++.h>
#include <algorithm> using namespace std; int x[]; int main()
{
int n;
int cases = ;
while(scanf("%d",&n)!=EOF)
{
for(int i=; i<n; i++)
scanf("%d",&x[i]); long long ans = ;
for(int i=; i<n; i++) {
long long tmp = ;
for(int j=i; j<n; j++)
{
tmp = tmp*(long long)x[j];
ans = max(ans,tmp);
}
}
printf("Case #%d: The maximum product is %lld.\n\n",cases++,ans); }
return ;
}

题目链接:https://vjudge.net/contest/147561#problem/C

题意:分数拆分。(x>=y) 找出所有 x,y,使得 1/k = 1/x + 1/y;

分析:由于是两个数的和,起点很容易知道,就是从 k 开始,但是不能够一直枚举下去,总要有一个结束点,这个结束点就是 2k,1/x + 1/y <= 2/y; 就有 y<=2k;

 #include <bits/stdc++.h>

 using namespace std;

 int main()
{ int k;
while(scanf("%d",&k)!=EOF) {
vector<int> ansx,ansy;
int cnt = ;
for(int y=k+;y<=*k;y++) {
if((y*k)%(y-k)==)
{
cnt ++;
int x = y*k/(y-k);
ansx.push_back(x);
ansy.push_back(y);
//printf("1/%d = 1/%d + 1/%d\n",k,x,y);
}
}
printf("%d\n",cnt);
for(int i=;i<cnt;i++)
printf("1/%d = 1/%d + 1/%d\n",k,ansx[i],ansy[i]);
}
return ;
}

题目链接:https://vjudge.net/contest/147561#problem/D

题意:素数环。

分析:http://www.cnblogs.com/TreeDream/p/5712621.html

枚举每一个位置,这个时候就要回溯了。

 #include <stdio.h>
#include <string.h> int prime[]= {}; ///是素数就是0
bool vis[];
int ans[];
int n; void dfs(int k)
{
if(k==n+)
{
for(int i = ; i <=n; i++)
{
if(i!= ) printf(" ");
printf("%d", ans[i]);
}
printf("\n");
return ;
}
else if(k==n)
{
for(int i=; i<=n; i++)
{
if(!vis[i]&&!prime[ans[k-]+i]&&!prime[i+ans[]])
{
ans[k] = i;
vis[i]=true;
dfs(k+);
vis[i] = false;
}
}
}
else
{
for(int i=; i<=n; i++)
{
if(!vis[i]&&!prime[ans[k-]+i])
{
ans[k] = i;
vis[i]=true;
dfs(k+);
vis[i] = false;
}
}
}
} int main()
{
//freopen("in.txt","r",stdin);
int kase = ;
///打出40个素数来
for(int i=; i<; i++)
if(!prime[i])
for(int j=i*i; j<; j+=i)
prime[j] = ; int Case = ;
while(scanf("%d",&n)!=EOF)
{
if(kase>) printf("\n");
memset(vis,false,sizeof(vis));
memset(ans,,sizeof(ans));
printf("Case %d:\n",Case++);
ans[] = ;
vis[] = true;
dfs();
kase++;
} return ;
}

题目链接:https://vjudge.net/contest/147561#problem/E

题意:困难的串,有相邻的重复子串的就不是困难的串。输入n ,l,l 为可供你多少个字符选择,找出困难串里面的字典序第 n 的串。

分析:

枚举当前位置的字符,但是你要查是否有连续子串,然后状态转移到下一个位置,至于字典序的问题,只要每次从A开始就行了,当有了n 个,就输出。

 #include <bits/stdc++.h>

 using namespace std;

 int n,l;
int cnt;
int s[]; int dfs(int cur)
{
if(cnt++==n)
{
for(int i=; i<cur; i++)
{
if(i%==&&i>) puts("");
else if(i%==&&i>) printf(" ");
printf("%c",'A'+s[i]);
}
printf("\n%d\n",cur);
return ;
} for(int i=; i<l; i++)
{
s[cur] = i;
int ok = ;
for(int j=; j*<=cur+; j++)
{
int equal = ;
for(int k=; k<j; k++)
{
if(s[cur-k]!=s[cur-k-j])
{
equal = ;
break;
}
}
if(equal) {
ok = ;
break;
}
}
if(ok) if(!dfs(cur+)) return ;
}
return ;
} int main()
{
while(scanf("%d%d",&n,&l),n)
{
cnt = ;
dfs();
} return ;
}

Hao Yin Jian 寒假第一周的更多相关文章

  1. FJUT寒假第一周作业浮点数查寻题解

    二分强化——浮点数序列查询 TimeLimit:4000MS  MemoryLimit:128MB 64-bit integer IO format:%I64d Problem Description ...

  2. 【Four-Week-Task】四周学习CTF之第一周【寒假更新】

    写在最前:为了更好地系统学习CTF(楞头冲很惨 别问我怎么知道的 除非你是天才),决定先看再学,先正向再逆向. /* 出版排版规范中,标题序号等级为:第一级,一.二.三.(用顿号):第二级,(一).( ...

  3. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  4. 《Java程序设计》第一周学习总结

    20145224 <Java程序设计>第一周学习总结 教材学习内容总结 通过第一周的学习让我对Java有了个初步的了解,知道了Java分为Java SE.Java EE.Java ME三大 ...

  5. 20175221 2018-2019-2 《Java程序设计》第一周学习总结

    20175221 2018-2019-2 <Java程序设计>第一周学习总结 教材学习内容总结 本周通过观看书本配套视频,学到了如解释器,编译器等一些简单概念. 还懂得了java的一些简单 ...

  6. 《JAVA程序设计》_第一周学习总结

    20175217吴一凡 <java程序设计> 第一周学习总结 虽然已经做好了心理准备,但第一周的学习任务着实让我忙了整整三天,还是挺充实的吧.寒假已经在自己的电脑上安装好了虚拟机,我就在我 ...

  7. C语言程序设计II—第一周教学

    第一周教学总结(25/2-3/3) 教学内容 开学谈心 测验数据类型.运算符与表达式的自学情况,并讲解测验题目 第七章 数组 7.1 一维数组 课前准备 在蓝墨云发布资源:回顾数据类型与表达式测试活动 ...

  8. C语言程序设计I—第一周教学

    这是在修改人才培养方案后第一次上C语言程序设计课程,本课程由原来的1学期80课时(周学时6)修改为2学期48(周学时4)+32(周学时2)课时的模式,开课学期也由一年二期改为大一整学年,当时修改的主要 ...

  9. 20145326《Java程序设计》第一周学习总结

    20145326<Java程序设计>第一周学习总结 教材学习内容总结 转眼间新的一学期终于开始了!为什么我这么期待呢?因为这学期可以上娄嘉鹏老师的java程序设计课,我不是什么电脑天才,之 ...

随机推荐

  1. js跨域总结

    一.通过jsonp跨域 在js中,我们直接用XMLHttpRequest请求不同域上的数据时,是不可以的.但是,在页面上引入不同域上的js脚本文件却是可以的,jsonp正是利用这个特性来实现的. 比如 ...

  2. Bootstrap 模态对话框只加载一次 remote 数据的解决办法 转载

    http://my.oschina.net/qczhang/blog/190215 摘要 前端框架 Bootstrap 的模态对话框,可以使用 remote 选项指定一个 URL,这样对话框在第一次弹 ...

  3. System.Web.Optimization找不到引用怎么办?

    Install-Package Microsoft.AspNet.Web.Optimization

  4. Struts2, jquery, select二级联动

    1. 下载jquery.js文件放在webroot下js文件夹里 2. 配置struts.xml: <package name="default" namespace=&qu ...

  5. 利用transform制作幻灯片

    html代码 <html><head></head><body><div class='hpic'> <ul style=" ...

  6. jsp自动刷新(转)

    1.页面自动刷新:把如下代码加入<head>区域中<meta http-equiv="refresh" content="20">,其中 ...

  7. (转)在Java中如何遍历Map对象

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

  8. DWR整合之JSF

    DWR 与 JSF DWR 包括两个 JSF 的扩展点,一个创造器和一个 ServletFilter. 1.JSF Creator DWR1.1 中有一个体验版的 JsfCreator.你可以在 dw ...

  9. Express静态服务器

    做应用的时候,如果需要给人测试,需要搭建本地服务器: 下载apache tomcat,各种配置,复杂得很. 之前在网上找到python的实现,在文件夹内运行一行代码就可以了,但是可惜,本机访问都很慢. ...

  10. Python3基础 函数 关键字参数 的示例

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...