HDU5211

思路:

倒着更新每个数的约数,更新完要把自己加上,以及1的情况?

//#include <bits/stdc++.h>
#include<iostream>
#include<map>
#include<cstdio>
#include<queue>
#include<string.h>
#include<algorithm>
using namespace std;
typedef long long LL;
typedef pair<int,int> PII;
//找最近倍数
const int N=1e4+10; map<int,int>mp;
void solve(int n,int id)
{
int q=sqrt(n);
if(n==1)
return;
mp[1]=id;
for(int i=2;i<=q;++i)
if(n%i==0)
{
mp[i]=id;
mp[n/i]=id;
}
}
int x[N];
int main()
{
int n;
while(~scanf("%d",&n))
{
int ans=0;
mp.clear();
for(int i=1;i<=n;i++)
scanf("%d",&x[i]);
for(int i=n;i>=1;i--)
{
solve(x[i],i);
ans+=mp[x[i]];
mp[x[i]]=i;
}
printf("%d\n",ans);
}
return 0;
}

HDU5228

注意本身牌可随意变换顺序= =、

//#include <bits/stdc++.h>
#include<iostream>
#include<map>
#include<cstdio>
#include<queue>
#include<string.h>
#include<algorithm>
using namespace std;
typedef long long LL;
typedef pair<int,int> PII;
char str[5];
int a[5][13];
int b[5][13];
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
memset(a,0,sizeof(a));
for(int i=0; i<5; i++)
{
scanf("%s",str);
int len=strlen(str);
if(len==3)
a[str[0]-'A'][(str[2]-'0')+(str[1]-'0')*10]=1;
else
a[str[0]-'A'][(str[1]-'0')]=1;
}
int ans=4;
for(int i=0; i<4; i++)
for(int j=1; j<=10; j++)
{
int num=0,k=j;
if(j==10)
{
b[num][0]=i;b[num++][1]=k;k++;
b[num][0]=i;b[num++][1]=k;k++;
b[num][0]=i;b[num++][1]=k;k++;
b[num][0]=i;b[num++][1]=k;k++;
b[num][0]=i;b[num++][1]=1;
}
else
{
b[num][0]=i;b[num++][1]=k;k++;
b[num][0]=i;b[num++][1]=k;k++;
b[num][0]=i;b[num++][1]=k;k++;
b[num][0]=i;b[num++][1]=k;k++;
b[num][0]=i;b[num++][1]=k;
}
int sum=0;
for(k=0; k<5; k++)
if(a[b[k][0]][b[k][1]]==1)
sum++;
ans=min(ans,5-sum);
}
printf("%d\n",ans);
}
return 0;
}

HDU5229

先手赢的话有两种:字符串相同或者字符串两个相加为奇数。

因为字符串相同的话,一定是偶数,所以只要找偶数的相同就好了,也就是说只要找相同就好了

先手赢的贡献=奇数长字符串个数*偶数长字符串个数 + 相同组合数

这里我用的是Trie树处理。

//#include <bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<queue>
#include<string.h>
#include<algorithm>
using namespace std;
typedef long long LL;
typedef pair<int,int> PII; const int N=20000+10; struct Trie{
int num;
Trie *next[26];
};
Trie q[N*10],*root;
int tol,ans,n;
char s[200010]; Trie* Creat()
{
Trie *p=&q[tol++];
for(int i=0;i<26;i++)
p->next[i]=NULL;
p->num=0;
return p;
} int INS()
{
int len=strlen(s);
Trie* p=root;
for(int i=0;i<len;i++)
{
int index=s[i]-'a';
if(p->next[index]==NULL)
p->next[index]=Creat();
p=p->next[index];
}
p->num++;
return p->num;
} int gcd(int x, int y)
{
if (x%y) return gcd(y, x%y);
return y;
} int main()
{
int T;
scanf("%d",&T);
while(T--){
int len,even=0,odd=0;
scanf("%d",&n);
tol=ans=0;
root=Creat();
for(int i=0;i<n;i++)
{
scanf("%s",s);
int temp=INS();
if(temp>2)
{
ans-=(temp-1)*(temp-2)/2;
ans+=(temp-1)*temp/2;
}
else if(temp==2)
ans+=temp*(temp-1)/2;
len=strlen(s);
if(len%2)
odd++;
else
even++;
}
ans+=odd*even;
int pp=ans;
int qq=n*(n-1)/2;
int g=gcd(qq,pp);
if(pp==0)
puts("0/1");
else
printf("%d/%d\n",pp/g,qq/g);
}
return 0;
}

HDU5232

水题;

//#include <bits/stdc++.h>
#include<iostream>
#include<map>
#include<cstdio>
#include<queue>
#include<string.h>
#include<algorithm>
using namespace std;
typedef long long LL;
typedef pair<int,int> PII;
const int N=1e6+10; int a[105][105],ans;
int main()
{
int n;
while (scanf("%d",&n)!=EOF)
{
ans=n*2;
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
scanf("%d",&a[i][j]);
for (int i=1;i<n;i++)
for (int j=i+1;j<=n;j++)
if (a[i][j]) ans+=2;
printf("%d\n",ans);
}
}

HDU5233

思路:

这道题可以二分,也能用map嵌套一个queue(很有可能mle),这里给出一个好的思想:预留;

对鸟每个位置的高度加一个预留位置,从最后往前枚举预处理一下,然后每次取完更新位置。

//#include <bits/stdc++.h>
#include<iostream>
#include<map>
#include<cstdio>
#include<queue>
#include<string.h>
#include<algorithm>
using namespace std;
typedef long long LL;
typedef pair<int,int> PII;
const int N=1e6+10; struct asd{
int id;
int next;
};
asd q[N];
map<int,int>mp;
int a[N],m,n,num; int main()
{
while(~scanf("%d%d",&n,&m)){
mp.clear();
num=0;
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=n;i>=1;i--)
{
q[++num].id=i;
q[num].next=mp[a[i]];
mp[a[i]]=num;
}
for(int i=1;i<=m;i++){
int x,temp;
scanf("%d",&x);
temp=mp[x];
if(!temp)
puts("-1");
else
printf("%d\n",q[temp].id);
mp[x]=q[temp].next;
}
}
return 0;
}

Beatcoder#39+#41+#42的更多相关文章

  1. Effective STL 学习笔记 39 ~ 41

    Effective STL 学习笔记 39 ~ 41 */--> div.org-src-container { font-size: 85%; font-family: monospace; ...

  2. javascript 运行机制 事件循环 浏览器缓存 (慕课网 前段跳槽面试必备 4-1,4-2,4-3)

    4-1 渲染机制:-1-,什么是DOCTYPE及其作用?DTD(document type definition,文档类型定义)是一系列的语法规则,用来定义XML或(X)HTML的文件类型,浏览器会使 ...

  3. Unity Shaders and Effects Cookbook (4-1)(4-2)静态立方体贴图的创建与使用

    開始学习第4章 - 着色器的反射 看完了1.2节,来记录一下.反射主要是利用了 Cubemap 立方体贴图. 认识Cubemap 立方体贴图.就如同名字所说.在一个立方体上有6张图.就这样觉得吧. 假 ...

  4. Java程序性能优化Tip

    本博客是阅读<java time and space performance tips>这本小书后整理的读书笔记性质博客,增加了几个测试代码,代码可以在此下载:java时空间性能优化测试代 ...

  5. ASP.NET MVC下的四种验证编程方式【转】

    ASP.NET MVC采用Model绑定为目标Action生成了相应的参数列表,但是在真正执行目标Action方法之前,还需要对绑定的参数实施验证以确保其有效 性,我们将针对参数的验证成为Model绑 ...

  6. Delphi实现HTMLWebBrowser实现HTML界面

    HTML的界面有以下特点:图文混排,格式灵活,可以包含Flash.声音和视频等,实现图文声像的多媒体界面,而且易于建立和维护.另外,HTML的显示环境一般机器上都具备,通常不需要安装额外的软件.当然, ...

  7. UVA 12113 Overlapping Squares

    题意: 总共有6个2*2的正方形,判断是否能够成所给的形状. 思路: 一个正方形总共有9种摆放方式,对于整个地图来说摆放方式总共有2的9次方种摆放方式.然后将地图用9*5的数组表示,正方形的位置用其8 ...

  8. 用WebBrowser实现HTML界面的应用和交互 good

    这一篇将继续讨论在使用delphi进行普通应用程序开发的时候,WebBrowser的具体应用,主要是针对使用其进行HTML界面开发的,这也是一篇我在网上找到的资料,大家如要转载,请尊重原作者的知识产权 ...

  9. pytho学习笔记---编码

    编解码 ASCII:1字节,0-255 GBK2313:常用的汉字,2万多个 GBK:对GBK2313的补充,支持藏文,2个字节表示一个汉字 big5:台湾,繁体字 unicode:万国码,2-4字节 ...

随机推荐

  1. C语言的面向对象设计之 X264,FFMPEG 架构探讨

    FFMPEG架构分析 使用面向对象的办法来设想这样一个编解码库,首先让人想到的是构造各种编解码器的类,然后对于它们的抽象基类确定运行数据流的规则,根据算法转换输入输出对象. 在实际的代码,将这些编解码 ...

  2. idea分支合并

    1.切换到指定分支(例如dev) 2.点击master的merge进行合并 注意:最好删掉本地的master和dev然后重新拉下远程的master和dev生成最新的本地master和dev

  3. html中设置透明遮罩层的兼容性代码

    说明:下面遮罩层的height视实际情况自行修改,要求显示的div层的样式需加上position:relative,位于遮罩层层div的下面一行.<div id="ceng" ...

  4. spring2实现定时任务的一种方式

    1. 在项目中放入Spring的jar包 2. applicationContext.xml的<beans xmlns>部分,添加context相关内容: <beans xmlns= ...

  5. Vmware虚拟机安装XP系统

    刚开始下载的雨林木风ghost镜像,首先是虚拟机无法自动识别系统版本.然后启动的时候也是无法从光驱启动,又接连下载了几个版本的系统镜像, 都是ghost的,都不好使,百度,偶然发现有人提了一句,需要用 ...

  6. mongodb 安装、启动

    MongoDB 之 你得知道MongoDB是个什么鬼 MongoDB - 1   最近有太多的同学向我提起MongoDB,想要学习MongoDB,还不知道MongoDB到底是什么鬼,或者说,知道是数据 ...

  7. EasyDarwin开源团队招募开发组成员

    EasyDarwin开源流媒体服务器项目招募开发组成员,共同更新和维护EasyDarwin流媒体服务器,决策EasyDarwin后续开发方向: 加入要求: 1.对开源流媒体项目有浓厚兴趣: 2.有一定 ...

  8. pdf文件的作成

    Dim Report As New crProgressList Report.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.P ...

  9. 【R】R语言生成随机数

    1.概述 作为一种语言进行统计分析,R有一个随机数生成各种统计分布功能的综合性图书馆.R语言可以针对不同的分布,生成该分布下的随机数.其中,有许多常用的个分布可以直接调用.本文简单介绍生成常用分布随机 ...

  10. mysql错误指令:Failed to open file "file_name" error 2/error 22

    网上说Linux下可能会有此问题,及导入sql文件时出现如标题所示的错误.而我用的是windows系统,也出现了同样的问题. source   filename | \. filename 执行这条语 ...