8-18-小练

A.HDU 1172   猜数字

采用枚举~【赤果果的暴力~】

代码:

 #include <iostream>
#include <cstdio>
#include <cstring>
using namespace std; int x[],y[],s,ss,vis[],dis[];
char a[][]; void find(int b,int c)
{
if(b==(a[c][]-'') && !vis[])
{
s++;vis[]=;
return;
}
if(b==(a[c][]-'') && !vis[])
{
s++;vis[]=;
return;
}
if(b==(a[c][]-'') && !vis[])
{
s++;vis[]=;
return;
}
if(b==(a[c][]-'') && !vis[])
{
s++;vis[]=;
return;
}
} int main()
{
int n,i,j,A,B,C,D,AA,BB,CC,DD;
while(scanf("%d",&n),n)
{
for(i=;i<n;i++)
scanf("%s%d%d",a[i],&x[i],&y[i]);
int sum=;
for(i=;i<=;i++)
{
D=i%;
C=(i/)%;
B=(i/)%;
A=i/;
int k=;
for(j=;j<n;j++)
{
s=,ss=;
memset(vis,,sizeof(vis));
memset(dis,,sizeof(dis));
if(A==a[j][]-'') {ss++;s++;vis[]=;dis[]=;}
if(B==a[j][]-'') {ss++;s++;vis[]=;dis[]=;}
if(C==a[j][]-'') {ss++;s++;vis[]=;dis[]=;}
if(D==a[j][]-'') {ss++;s++;vis[]=;dis[]=;}
if(ss!=y[j]) break;
if(!dis[]) find(A,j);
if(!dis[]) find(B,j);
if(!dis[]) find(C,j);
if(!dis[]) find(D,j);
if(s!=x[j]) break;
k++;
}
if(k==n)
{
sum++;
if(sum==) break;
AA=A;BB=B;CC=C;DD=D;
}
}
if(sum!=) printf("Not sure\n");
else
printf("%d%d%d%d\n",AA,BB,CC,DD);
}
return ;
}

B.HDU 2112     HDU Today

就是字符串处理麻烦了点~将字符串编号+Dijkstra就可以了~

代码:

 #include <iostream>
#include <cstdio>
#include <cstring>
using namespace std; #define inf 0x3f3f3f3f //手抽~最开始把inf写的太大了,结果超int了......= =
int map[][],vis[],n,m,s,e;
long dis[];
char name[][]; void dijkstra()
{
memset(vis,,sizeof(vis));
memset(dis,inf,sizeof(dis));
dis[s]=;
for(int i=;i<=m;i++)
{
int x,minn=inf;
for(int j=;j<=m;j++)
if(!vis[j] && dis[j]<minn)
{
minn=dis[j];
x=j;
}
vis[x]=;
for(int y=;y<=m;y++)
dis[y]=min(dis[y],map[x][y]+dis[x]);
}
return;
} int find(char str[])
{
int i;
for(i=;i<=m;i++)
if(strcmp(name[i],str)==)
return i;
if(m== || i>m)
{
m++;
strcpy(name[m],str);
return m;
}
} int main()
{
while(scanf("%d",&n)!=EOF)
{
if(n==-) break;
char start[],end[],s1[],s2[];
int i,j,a,b,c;
scanf("%s%s",start,end);
memset(map,inf,sizeof(map));
m=;
for(i=;i<=n;i++)
{
scanf("%s%s%d",s1,s2,&c);
a=find(s1);
b=find(s2);
if(map[a][b]>c)
map[a][b]=map[b][a]=c;
}
s=find(start);
e=find(end);
if(s==e) printf("0\n");
else
{
dijkstra();
if(dis[e]!=inf)
printf("%ld\n",dis[e]);
else
printf("-1\n");
}
}
return ;
}

//memory:396KB     time:687ms

C.POJ 1321      棋盘问题

dfs~还有就是要注意当K<n 时~

代码:

 #include <iostream>
#include <cstdio>
#include <cstring>
using namespace std; bool chess[][],vis[];
int ans,n,k; void dfs(int row,int num)
{
if(num==k){ans++;return;}
if(row>=n) return;
for(int i=;i<n;i++)
if(!vis[i] && chess[row][i])
{
vis[i]=true;
dfs(row+,num+);
vis[i]=false;
}
dfs(row+,num); //这一步很重要~
return;
} int main()
{
while(~scanf("%d%d",&n,&k))
{
if(n==- && k==-) break;
int i,j;
memset(chess,false,sizeof(chess));
for(i=;i<n;i++)
for(j=;j<n;j++)
{
char c;
cin>>c;
if(c=='#')
chess[i][j]=true;
}
ans=;
dfs(,);
printf("%d\n",ans);
}
return ;
}

//memory:708KB    time:32ms

E.POJ 3006      Dirichlet's Theorem on Arithmetic Progressions

呃.......就是暴力啦.......

代码:

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std; bool juge(int x)
{
for(int i=;i*i<=x;i++)
if(x%i==) return false;
return true;
} int main()
{
int a,b,n,i,j;
while(scanf("%d%d%d",&a,&b,&n),a,b,n)
{
int k=,sum=;
for(i=;;i++)
{
sum=a+i*b;
if(sum> && juge(sum))
k++;
if(k==n) break;
}
printf("%d\n",sum);
}
return ;
}

//memory:164KB     time:250ms

8-18-Exercise的更多相关文章

  1. [未完成]关于Eclipse4RCP书中内容总结

    原文地址http://www.vogella.com/tutorials/EclipseRCP/article.html Table of Contents 1. Eclipse 4 1.1. Wha ...

  2. Delphi XE Starter Essentials 中文目录

    Table of Contents1. Delphi XE Starter IDE 1Delphi and C++Builder ................................... ...

  3. 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 ...

  4. C - The C Answer (2nd Edition) - Exercise 1-8

    /* Write a program to count blanks, tabs, and newlines. */ #include <stdio.h> /* count blanks, ...

  5. MIT 6.828 JOS学习笔记5. Exercise 1.3

    Lab 1 Exercise 3 设置一个断点在地址0x7c00处,这是boot sector被加载的位置.然后让程序继续运行直到这个断点.跟踪/boot/boot.S文件的每一条指令,同时使用boo ...

  6. Think Python - Chapter 18 - Inheritance

    In this chapter I present classes to represent playing cards, decks of cards, and poker hands.If you ...

  7. James Munkres Topology: Sec 18 Exer 12

    Theorem 18.4 in James Munkres “Topology” states that if a function \(f : A \rightarrow X \times Y\) ...

  8. CMSC 216 Exercise #5

    CMSC 216 Exercise #5 Spring 2019Shell Jr (”Shellito”) Due: Tue Apr 23, 2019, 11:30PM1 ObjectivesTo p ...

  9. 18年10月31日 NOIP模拟赛

    T1.exercise 题解 数据很小直接模拟 代码 #include<iostream> #include<cstdio> #include<cmath> #in ...

  10. day06-codes and exercise in class

    # Author: Ghost # Email: jiaci.liu@gmail.com ''' 1-Review of last week 2-interface class, abstract c ...

随机推荐

  1. Spring 数据源配置一:单一数据源

    最近遇到一个项目,需要访问都多个数据源,并且数据库是不同厂商(mysql,  sqlserver). 所以对此做了一些研究,这里咱们采用渐进的方式来展开,先谈谈单一数据源配置.(稍后有时间会陆续补充其 ...

  2. PHP ini_set() 函数

    PHP ini_set用来设置php.ini的值,在函数执行的时候生效,对于虚拟空间来说,很方便,下面为大家介绍下此方法的使用 PHP ini_set用来设置php.ini的值,在函数执行的时候生效, ...

  3. Unity之串口通信(基于三姿态传感器)

    原地址:http://www.cnblogs.com/alongu3d/archive/2013/05/02/3054962.html /******************************* ...

  4. Python中文全攻略

    原文链接:http://blog.csdn.net/mayflowers/archive/2007/04/18/1568852.aspx 1.        在Python中使用中文 在Python中 ...

  5. 部分视图调用方法总结(Action 、 RenderAction 、 Partial 、 RenderPartial)

    Action . RenderAction . Partial . RenderPartial 1.Action . RenderAction Action 方法以字符串的形式返回子视图,可以直接被呈 ...

  6. <算法竞赛入门经典> 第8章 贪心+递归+分治总结

    虽然都是算法基础,不过做了之后还是感觉有长进的,前期基础不打好后面学得很艰难的,现在才慢慢明白这个道理. 闲话少说,上VOJ上的专题训练吧:http://acm.hust.edu.cn/vjudge/ ...

  7. Linux内核学习笔记: uid之ruid,euid,suid

    转自: http://www.linuxidc.com/Linux/2011-09/43194.htm 看UNIX相关的书时经常能遇到这几个概念,但一直没有好好去理清这几个概念,以致对这几个概念一直一 ...

  8. ANDROID_MARS学习笔记_S01原始版_006_ListView

    一.代码1.xml(1)main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayo ...

  9. 第八章CDC设备

    8.1 CDC设备介绍 USB的CDC类是USB通信设备类(Communication Device Class)的简称.CDC类是USB组织定义的一类专门给各种通信设备(电信通信设备和中速网络通信设 ...

  10. android usb host 读写USB设备

    自android3.1以后android增加了操作USB设备的API. 官网地址:http://developer.android.com/guide/topics/connectivity/usb/ ...