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 ...
随机推荐
- Oracle job procedure
Oracle job procedure 存储过程定时任务 oracle job有定时执行的功能,可以在指定的时间点或每天的某个时间点自行执行任务. 一.查询系统中的job,可以查询视图 --相关视图 ...
- Seven Python Tools All Data Scientists Should Know How to Use
Seven Python Tools All Data Scientists Should Know How to Use If you’re an aspiring data scientist, ...
- Linux的直接I/O机制
转自Linux的直接I/O机制 对于传统的操作系统来说,普通的 I/O 操作一般会被内核缓存,这种 I/O 被称作缓存 I/O.本文所介绍的文件访问机制不经过操作系统内核的缓存,数据直接在磁盘和应用程 ...
- 通过 SignalR 类库,实现 ASP.NET MVC 的实时通信
在本文中,您将学到在现有 ASP.NET MVC 框架的 CRUD 项目中,如何使用 SignalR 类库,显示来自数据库的实时更新.在这一主题中,我们将重点放在在现有 ASP.NET MVC 框架的 ...
- Java使用socket实现两人聊天对话
import java.io.*; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; /* ...
- loadrunner 一个诡异问题
最近使用loadrunner压测一个项目的时候,发现TPS波动巨大.且平均值较低.使用jmeter压测则没有这个问题.经过多方排查发现一个让人极度费解的原因: 原脚本: //脚本其他代码...... ...
- char 与 unsigned char的本质区别
在C中,默认的基础数据类型均为signed,现在我们以char为例,说明(signed) char与unsigned char之间的区别 首先在内存中,char与unsigned char没有什么不同 ...
- chrome插件 postman插件 接口测试、API & HTTP 请求调试工具
Postman 是一个非常棒的Chrome扩展,提供功能强大的API & HTTP 请求调试. 它能够发送任何类型的HTTP requests (GET, HEAD, POST, PUT..) ...
- Binary to Text (ASCII) Conversion
Binary to Text (ASCII) Conversion Description: Write a function that takes in a binary string and re ...
- Oracle系列之序列
涉及到表的处理请参看原表结构与数据 Oracle建表插数据等等 语法结构:创建序列 create sequence sequence_name start with num increment by ...