Hao Yin Jian 寒假第一周
题目链接: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 寒假第一周的更多相关文章
- FJUT寒假第一周作业浮点数查寻题解
二分强化——浮点数序列查询 TimeLimit:4000MS MemoryLimit:128MB 64-bit integer IO format:%I64d Problem Description ...
- 【Four-Week-Task】四周学习CTF之第一周【寒假更新】
写在最前:为了更好地系统学习CTF(楞头冲很惨 别问我怎么知道的 除非你是天才),决定先看再学,先正向再逆向. /* 出版排版规范中,标题序号等级为:第一级,一.二.三.(用顿号):第二级,(一).( ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 《Java程序设计》第一周学习总结
20145224 <Java程序设计>第一周学习总结 教材学习内容总结 通过第一周的学习让我对Java有了个初步的了解,知道了Java分为Java SE.Java EE.Java ME三大 ...
- 20175221 2018-2019-2 《Java程序设计》第一周学习总结
20175221 2018-2019-2 <Java程序设计>第一周学习总结 教材学习内容总结 本周通过观看书本配套视频,学到了如解释器,编译器等一些简单概念. 还懂得了java的一些简单 ...
- 《JAVA程序设计》_第一周学习总结
20175217吴一凡 <java程序设计> 第一周学习总结 虽然已经做好了心理准备,但第一周的学习任务着实让我忙了整整三天,还是挺充实的吧.寒假已经在自己的电脑上安装好了虚拟机,我就在我 ...
- C语言程序设计II—第一周教学
第一周教学总结(25/2-3/3) 教学内容 开学谈心 测验数据类型.运算符与表达式的自学情况,并讲解测验题目 第七章 数组 7.1 一维数组 课前准备 在蓝墨云发布资源:回顾数据类型与表达式测试活动 ...
- C语言程序设计I—第一周教学
这是在修改人才培养方案后第一次上C语言程序设计课程,本课程由原来的1学期80课时(周学时6)修改为2学期48(周学时4)+32(周学时2)课时的模式,开课学期也由一年二期改为大一整学年,当时修改的主要 ...
- 20145326《Java程序设计》第一周学习总结
20145326<Java程序设计>第一周学习总结 教材学习内容总结 转眼间新的一学期终于开始了!为什么我这么期待呢?因为这学期可以上娄嘉鹏老师的java程序设计课,我不是什么电脑天才,之 ...
随机推荐
- MYSQL启用日志,查看日志,利用mysqlbinlog工具恢复MySQL数据库【转载】
转自 MYSQL启用日志,查看日志,利用mysqlbinlog工具恢复MySQL数据库 - _安静 - 博客园http://www.cnblogs.com/xionghui/archive/2012/ ...
- java.lang.ClassCastException: com.sun.proxy.$Proxy8 cannot be cast to com.bjsxt.service.UserServiceImpl01_AOP.
对于Spring AOP 采用两种代理方法,一种是常规JDK,一种是CGLIB,我的UserDao了一个接口IUserDao,当代理对象实现了至少一个接口时,默认使用 JDK动态创建代理对象,当代理对 ...
- zf-关于公司框架的时间字段的格式转换问题。。
<ww:date value="" format="yyyy-MM-dd">
- 处理Easyui的Datagrid无法及时刷新问题
在Easyui中打打开窗口dialog控件,当做完修改操作之后,关闭dialog控件刷新Datagrid,有时候无法及时刷新. 1.JavaScript中的代码 function doEdit(){ ...
- Hibernate配置过程可能发生的问题及解决方法
1.问题:Exception in thread "main" java.lang.NoClassDefFoundError: org/dom4j/DocumentExceptio ...
- PAT (Advanced Level) 1062. Talent and Virtue (25)
简单排序.题意较长. #include<cstdio> #include<cstring> #include<cmath> #include<queue> ...
- whm 设置共享IP
点击 Main >>Resellers>>resellers centers (manages ressellers center's IP有几个IP代表几个)
- 疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条
http://blog.csdn.net/terryzero/article/details/3797782 疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条 标签: swing编程 ...
- 利用dokan作虚拟磁盘开发
dokan是用户态的文件系统驱动,可以称之为fuse for windows.可以用来开发虚拟磁盘,即在“我的电脑”中虚拟出一个硬盘来,可以是硬盘,也可以是可移动磁盘或者网络硬盘. CreateFil ...
- CodeForces 614A Link/Cut Tree
#include<cstdio> #include<cstring> #include<cmath> #include<stack> #include& ...