题目名称 438. 烦人的幻灯片
输入输出 slides.in/out
难度等级 ★☆
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 3
题目来源 Gravatarcqw 于2010-04-22加入
开放分组 全部用户
提交状态
分类标签
二分图 贪心 连通性
分享题解
通过:53, 提交:109, 通过率:48.62%
Gravatar_Itachi 100 0.000 s 0.00 MiB C++
GravatarAptal丶 100 0.000 s 0.00 MiB C++
Gravatarムラサメ 100 0.000 s 0.00 MiB C++
Gravatarsrt09 100 0.000 s 0.17 MiB Pascal
GravatarSunshine ヾ 100 0.000 s 0.17 MiB Pascal
Gravatardishierweidu 100 0.000 s 0.17 MiB Pascal
Gravatar天下第一的吃货殿下 100 0.000 s 0.17 MiB Pascal
Gravatar史莱克音洛 100 0.000 s 0.32 MiB C++
Gravatarzjmfrank2012 100 0.000 s 0.33 MiB C++
GravatarBFZD 100 0.000 s 4.24 MiB C++
本题关联比赛
20100422
关于 烦人的幻灯片 的近10条评论(全部评论)
#include<iostream>
#include<cstdio>
using namespace std;
unsigned long long n;
int main(){
cin>>n;
for(unsigned long long x=9223372036854775808,a=64;a!=-1;x/=2,a-=1){
if(n/x!=0&&a!=1){
cout<<"2^"<<a-1<<"+";
}
if(a==1){
cout<<"2^0";
}
}
return 0;
}
Gravatar史莱克音洛
2018-12-03 20:20 9楼
#include <cstdio>
#include <algorithm>
#include <cstring>
typedef long long L;
using namespace std;
L a, b, c, _10[15], ans[15], f[15][15][15];
bool flag;
void get_f(){
_10[0] = 1;
for(int i = 1; i < 15; i++) _10[i] = _10[i-1]*10;
for(int i = 1; i < 10; i++) f[i][1][i] = 1;
for(int i = 1; i < 10; i++)
for(int j = 2; j < 15; j++){
f[i][j][1] = _10[j-2]*(j-1);
for(int k = 2; k < 10; k++)
f[i][j][k] = f[i][j][1];
}
for(int i = 1; i < 10; i++)
for(int j = 2; j < 15; j++){
f[i][j][i] += _10[j-1];
}
}
void get_all(){
int la = 0, lb = 0;
L ta = a-1, tb = b, all = 0;
while(ta){
la++, ta /= 10;
}
while(tb){
lb++, tb /= 10;
}
for(int i = la; i < lb; i++){
all += (_10[i]-_10[i-1])*i;
} all += (b-_10[lb-1]+1)*lb;
all -= (a-_10[la-1])*la;
ans[0] = all;
}
L d(L k, int i){
if(!k) return 0;
int fir, len = 0;
L t = k, res = 0;
while(t){
len++, t /= 10;
} fir = k / _10[len-1];
if(len == 1) return i <= k;
for(int j = 1; j < fir; j++){
res += f[j][len][i];
}
res += d(k%_10[len-1], i) + d(_10[len-1]-1, i) + (fir==i)*(k%_10[len-1]+1);
return res;
}
int main()
{
freopen("count2013.in", "r", stdin);
freopen("count2013.out", "w", stdout);
scanf("%lld %lld", &b, &c);
a = 1;
get_f();
get_all();
for(int i = 1; i < 10; i++){
ans[i] = d(b, i) - d(a-1, i);
ans[0] -= ans[i];
}
printf("%lld ", ans[c]);
return 0;
}
Gravatar10001
2018-12-03 19:03 8楼
#include <iostream>
#include<cstdio>
using namespace std;
int main()
{
//freopen("mas.in","r",stdin);
//freopen("mas.out","w",stdout);
int a[100][100];
int i,j,n;
int max,point,flag=1,work=1;
cin>>n;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>a[i][j];
for(i=0;i<n;i++)
{
max=a[i][0];
point=0;
for(j=1;j<n;j++)
{
if(max>a[i][j])
{
max=a[i][j];
point=j;
}
}
flag=1;
for(j=0;j<n;j++)
{
if(a[j][point]>max)
flag=0;
}
if(flag)
{
cout<<i+1<<" "<<point+1<<" "<<max<<endl;
return 0;
}
}
cout<<"no"<<endl;
return 0;
}
Gravatar1
2018-11-28 19:30 7楼
回复 @天下第一的吃殿下 :
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
freopen("snake.in","r",stdin);
freopen("snake.out","w",stdout);
int a[102][102],d=1;
int n;
cin>>n;
for(int i=1,x=1,y=1;i<=n*n;i++)
{
a[x][y]=i;
if(d==1){
x=x+1;
if(y==1)
d=2;
else
d=4;
}
else if(d==2)
{
x=x-1;y=y+1;
if(y==n)d=1;
else
if(x==1) d=3;
}
else if(d==3)
{
y=y+1;
if(x==n) d=2;
else
d=4;
}
else if(d==4)
{
x=x+1;y=y-1;
if(x==n) d=3;
else if(y==1) d=1;
}
}
for(int i=1;i<=n;i++)
{
for(int k=1;k<=n;k++)
{
cout<<a[i][k]<<" ";
}
cout<<endl;
}
return 0;}
GravatarMISS Yin
2018-11-28 18:39 6楼
其实和"稳定婚姻"差不多,不过这题没有给出一个最大匹配,但只是问整个图中是否存在交错环.
Gravatarliu_runda
2016-08-11 20:16 5楼
None.............
GravatarMagic_Sheep
2016-06-17 17:26 4楼
Gravatar一個人的雨
2015-06-11 07:31 3楼
过了两个点之后发现样例过不去了……
Gravatarsrt09
2013-12-21 20:38 2楼
写了这么麻烦的代码居然一共只有3个点????!!!!!
Gravatar天下第一的吃货殿下
2012-10-04 18:02 1楼

438. 烦人的幻灯片

★☆   输入文件:slides.in   输出文件:slides.out   简单对比
时间限制:1 s   内存限制:128 MiB

【问题描述】

李教授将于今天下午作一次非常重要的演讲。不幸的是他不是一个非常爱整洁的人,他把自己演讲要用的幻灯片随便堆在了一起。因此,演讲之前他不得不去整理这些幻灯片。做为一个讲求效率的学者,他希望尽可能简单地完成它。教授这次演讲一共要用n张幻灯片(n≤26),这n张幻灯片按照演讲要使用的顺序已经用数字l,2,…,n在上面编了号。因为幻灯片是透明的,所以我们不能一下子看清每一个数字所对应的幻灯片。

现在我们用大写字母A,B,C,…再次把幻灯片依次编号。你的任务是编写一个程序,把幻灯片的数字编号和字母编号对应起来,显然这种对应应该是惟一的;若是出现多种对应的情况或是某些数字编号和字母编号对应不起来,我们就称对应是无法实现的。

【输入格式】

幻灯片的情况通过一个文本文件slides.in输入。

文件的第1行只有一个整数n,表示有n张幻灯片,接下来的n行每行包括4个整数Xmin,Xmax,Ymin,Ymax(整数之间用空格分开)为幻灯片的坐标,这n张幻灯片按其在输入文件中出现的顺序从前到后依次编号为A,B,C,…

再接下来的n行依次为n个数字编号的坐标x,y,显然在幻灯片之外是不会有数字的。

【输出格式】

要求将程序的运行结果写入一个名为slides.out的文本文件。若是对应可以实现,输出文件应该包括n行,每一行为一个字母和一个数字,中间以一个空格隔开,并且各行以字母的升序排列,注意输出的字母要大写并且顶格;反之,若是对应无法实现,在文件的第1行顶格输出None即可。行首行末并无多余的空格。

【输入样例】

4
6 22 10 20
4 18 6 16
8 20 2 18
10 24 4 8
9 15
19 17
11 7
21 11

【输出样例】

A 4
B 1
C 2
D 3