8-15-Exercise
这次的题目......只觉得泪奔啊......T T
A.HDU 1042 N!
因为0<=n<=1000,故一定要用数组或字符串【同样因为n<=1000故用数组就够了~~~】。
代码:
#include <iostream>
#include <cstdio>
using namespace std; int a[]; int main()
{
int n,i,j;
while(~scanf("%d",&n))
{
if(n== || n==){printf("1\n"); continue;}
a[]=; //用来记录数字的位数
a[]=;
for(i=;i<=n;i++)
{
int sum=;
for(j=;j<=a[];j++)
{
int temp=a[j]*i+sum;
sum=temp/;
a[j]=temp%;
}
while(sum)
{
a[j]=sum%;
a[]=j;
sum/=;
j++;
}
}
for(i=a[];i>=;i--)
printf("%d",a[i]);
printf("\n");
}
return ;
}
//memory:372KB time:1546ms
B.HDU 1050 Moving Tables
下面是网上的代码,我做这道题时,自己的思路与下面代码的思路略有不同......我是把区间从大到小排了后再找同一时间能作业的区间,看要找几次;而网上的代码的思路则是找重叠区域,看重叠的次数。其实,实质上,我的“找的次数”与网上的“重叠次数”都是相同的,但不知道为什么WA,但测试了好几组数据都是对的......
我的代码如下【还望高手不吝赐教】:
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std; class N
{
public:
int x,y,id;
}a[]; bool comp(N w,N q)
{
return w.x<q.x;
} int main()
{
int t,n,i,j;
scanf("%d",&t);
while(t--)
{
memset(a,,sizeof(a));
scanf("%d",&n);
for(i=;i<n;i++)
{
int x,y;
scanf("%d%d",&x,&y);
if(x<y)
{a[i].x=x;a[i].y=y;}
else
{a[i].x=y;a[i].y=x;}
}
sort(a,a+n,comp);
int sum=;
for(i=;i<n;i++)
if(a[i].id==)
{
a[i].id=;
int minn=a[i].y;
for(j=i+;j<n;j++)
if(a[j].id== && a[j].x>minn)
{
a[j].id=;
minn=a[j].y;
}
sum++;
}
printf("%d\n",sum*);
}
return ;
}
网上的AC代码:
#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <string.h>
using namespace std; #define maxn 460 int main()
{
int t,i,n,b,e;
scanf("%d",&t);
while (t--)
{
int c[]={},m=;
scanf("%d",&n);
while (n--)
{
scanf("%d%d",&b,&e);
if (b>e)
{
i=b;
b=e;
e=i;
}
for (i=(b-)/;i<=(e-)/;++i)
++c[i];
}
for (i=;i<;++i)
if (m<c[i])m=c[i];
printf("%d\n",*m);
}
return ;
}
//memory:228KB time:0ms
C.HDU 1181 变形课
题意:就是在一堆的字符串中看“b”是否能转换成“m”。【转换关系:每一个字符串的首字母可以变为尾字母】
BFS~
#include <iostream>
#include <cstdio>
#include <queue>
#include <cstring>
using namespace std; const int inf=<<;
bool vis[];
int a[][];
char c[]; void bfs()
{
int q1=,q2,i;
queue<int> q;
memset(vis,,sizeof(vis));
q.push(q1);
vis[q1]=;
while(!q.empty())
{
q2=q.front();
q.pop();
for(i=;i<;i++) //i代表的是字母【example:i=0,代表A】
if(!vis[i] && a[q2][i]==)
{
if(i=='m'-'a')
{
puts("Yes.");
return;
}
q.push(i);
vis[i]=;
}
}
puts("No.");
return;
} int main()
{
int t,n,i,j,len;
memset(a,,sizeof(a));
while(~scanf("%s",c))
{
len=strlen(c);
a[c[]-'a'][c[len-]-'a']=; //建立字母转换的图
if(c[]=='')
{
bfs();
memset(a,,sizeof(a));
}
}
return ;
}
//memory:268KB time:0ms
D.HDU 3501 Calculation 2
是考欧拉函数~
来源:http://gzhu-101majia.iteye.com/blog/1296950
代码:
#include <iostream>
#include <cstdio>
using namespace std; #define M 1000000007 int eular(__int64 n) //欧拉函数
{
int i,ans=n;
for(i=;i*i<=n;i++)
if(n%i==)
{
ans-=ans/i;
while(n%i==)
n/=i;
}
if(n>) ans-=ans/n;
return ans;
} int main()
{
__int64 n,ans;
while(scanf("%I64d",&n),n)
{
ans=n*(n+)/-n;
ans-=eular(n)*n/;
ans%=M;
printf("%I64d\n",ans);
}
return ;
}
//memory:228KB time:15ms
E.HDU 2601 An easy problem
i*i+i+j=n可以写成:(i+1)*(j+1)=n-1
式子改成了上面这个模样......答案就华华丽丽的出来了~~╮(╯▽╰)╭
代码:
#include<stdio.h>
#include<math.h>
int main()
{ int t;
scanf("%d",&t);
while(t--)
{
__int64 n;
scanf("%I64d",&n);
n++;
__int64 i;
__int64 sum=;
for(i=;i*i<=n;i++)
if(n%i==)
sum++;
printf("%I64d\n",sum); }
return ;
}
//memory:228KB time:2000ms
8-15-Exercise的更多相关文章
- C - The C Answer (2nd Edition) - Exercise 1-5
/* Modify the temperature conversion program to print the table in reverse order, that is, from 300 ...
- MIT 6.828 JOS学习笔记5. Exercise 1.3
Lab 1 Exercise 3 设置一个断点在地址0x7c00处,这是boot sector被加载的位置.然后让程序继续运行直到这个断点.跟踪/boot/boot.S文件的每一条指令,同时使用boo ...
- Think Python - Chapter 15 - Classes and objects
15.1 User-defined typesWe have used many of Python’s built-in types; now we are going to define a ne ...
- 《how to design programs》15章 相互引用的数据定义
由结构体组成的表与结构体中的表. 在用追溯形式建立家家谱树时,我们通常从某个后代除法,依次处理它的父母,组父母等.而构建树时,我们会不断添加谁是谁的孩子,而不是写出谁是谁的父母,从而建立一颗后代家谱树 ...
- CMSC 216 Exercise #5
CMSC 216 Exercise #5 Spring 2019Shell Jr (”Shellito”) Due: Tue Apr 23, 2019, 11:30PM1 ObjectivesTo p ...
- 软件测试:3.Exercise Section 2.3
软件测试:3.Exercise Section 2.3 /************************************************************ * Finds an ...
- (14)Why some people find exercise harder than others
https://www.ted.com/talks/emily_balcetis_why_some_people_find_exercise_harder_than_others/transcript ...
- 【DeepLearning】Exercise:Self-Taught Learning
Exercise:Self-Taught Learning 习题链接:Exercise:Self-Taught Learning feedForwardAutoencoder.m function [ ...
- TEXT 15 A text a day...
TEXT 15 A text a day... Mar 24th 2006 From The Economist print edition The medical uses of mobile ph ...
- 18 A GIF decoder: an exercise in Go interfaces 一个GIF解码器:go语言接口训练
A GIF decoder: an exercise in Go interfaces 一个GIF解码器:go语言接口训练 25 May 2011 Introduction At the Googl ...
随机推荐
- 我的PHP之旅--数组的认识(初级)
数组 PHP的数组与swift有些许不同,分为3类(初级,以后会涉及到多维数组和数组指针等). 枚举数组 关联数组 混合数组 枚举数组 枚举数组跟swift中的数组差不多: <?php $arr ...
- AMH4.2免费版手动编译升级Nginx1.8版本方法
从AMH免费版本停留在4.2版本之后就没有进行更新和升级,而且官方提供的解决文档也比较少,毕竟免费且没有盈利的产品还是没有多少兴趣的.但是,对于大部分网站环境来说,安装和使用AMH4.2免费版本还是够 ...
- win7 不能启动 memcached 总是反回failde to start service
原地址: http://zhidao.baidu.com/link?url=Ul9hJxFckU9IHWRy0pcxT11f2c0-p2uXkXhLria73mLNxYuV7IiaKYRtIl6vED ...
- linux登录后出现_bash-4.1#终端提示符异常
如果使用root用户登录出现上述提示,则需要需要重建 /root .bash_profile文件: 1. vi /root .bash_profile 2. 输入如下内容 # .bashrc # Us ...
- mysql查看'datadir'目录
mysql查看创建的数据库的数据,包含表等存放的目录,可以输入下面指令查看: show variables like 'datadir'
- iis下设置默认页
IIS设置设默认页 计算机-->右键管理-->服务器和应用程序-->Internet信息服务 -->网站-->你发布的网站名-->功能视图-->IIS大类里- ...
- Android自定义属性时format选项可以取用的值
1. reference:参考某一资源ID. (1)属性定义: <declare-styleable name="名称"> <attr format=" ...
- 《深入理解linux内核》第三章 进程
进程的七种状态 在内核源码的 include/linux/sched.h文件中: task_struct的status可表示 #define TASK_RUNNING 0 #define TASK_I ...
- 【HDOJ】1709 The Balance
母函数,指数可以为1也可以为-1,扩大指数加消减发现TLE,于是采用绝对值就过了. #include <stdio.h> #include <string.h> #define ...
- Covariance and Contravariance in C#, Part Two: Array Covariance
http://blogs.msdn.com/b/ericlippert/archive/2007/10/17/covariance-and-contravariance-in-c-part-two-a ...