博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3月30日
阅读量:5110 次
发布时间:2019-06-13

本文共 1709 字,大约阅读时间需要 5 分钟。

早上的开题答辩似乎是很水的样子,不过好像班上还是有一个人没通过,最后竟然发现我们这组的大boss是王伟,然后就没有然后了QAQ

poj3256

题意:有k头牛,n个顶点,m条路径,第i头牛从t[i]出发,问有多少个点是所有牛都可以到达的

分析:就是统计每一个顶点会被访问几次,若访问的次数正好等于k,则就是n头牛都可以到达的顶点

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 #include
13 using namespace std;14 const int maxn=1010;15 int k,n,m;16 int t[100]; //记录每次的开始位置17 int g[maxn][maxn]; //记录两点之间是否相互可达18 int flag[maxn]; //标记访问过的点19 int vis[maxn]; //标记这个点被访问了几次20 void dfs(int h)21 {22 flag[h]=1;23 vis[h]++;24 for(int i=1;i<=n;i++)25 {26 if(!flag[i]&&g[h][i])27 dfs(i);28 }29 }30 int main()31 {32 while(cin>>k>>n>>m)33 {34 for(int i=0;i
我的代码

 poj2362

题意:有n个数,问是否能构成正方形

分析:只要能构成正方形的三边即可构成正方形,剪枝+dfs,若总长度不能被4整除,或者有一边的长度大于总长度的四分之一均不行,剪枝,然后对于剩下的情况按照按照数的从小到大进行排序,之后逆向进行dfs,这样做的目的是可以更快找到相应的边

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 #include
13 using namespace std;14 const int maxn=25;15 int a[maxn],vis[maxn];16 int n,cnt;17 bool dfs(int pos,int len,int step)18 {19 if(step==3) return true;20 for(int i=pos;i>=0;i--) //逆序更快21 {22 if(!vis[i])23 {24 vis[i]=1;25 if(len+a[i]
>t;40 while(t--)41 {42 cin>>n;43 memset(a,0,sizeof(a));44 int sum=0;45 for(int i=0;i
>a[i];48 sum+=a[i];49 }50 memset(vis,0,sizeof(vis));51 sort(a,a+n);52 if(sum%4||a[n-1]>sum/4)53 {54 cout<<"no"<
我的代码

 

转载于:https://www.cnblogs.com/wolf940509/p/5338962.html

你可能感兴趣的文章
待整理
查看>>
一次动态sql查询订单数据的设计
查看>>
C# 类(10) 抽象类.
查看>>
Vue_(组件通讯)子组件向父组件传值
查看>>
jvm参数
查看>>
我对前端MVC的理解
查看>>
Silverlight实用窍门系列:19.Silverlight调用webservice上传多个文件【附带源码实例】...
查看>>
2016.3.31考试心得
查看>>
mmap和MappedByteBuffer
查看>>
Linux的基本操作
查看>>
转-求解最大连续子数组的算法
查看>>
对数器的使用
查看>>
【ASP.NET】演绎GridView基本操作事件
查看>>
ubuntu无法解析主机错误与解决的方法
查看>>
尚学堂Java面试题整理
查看>>
MySQL表的四种分区类型
查看>>
[BZOJ 3489] A simple rmq problem 【可持久化树套树】
查看>>
STM32单片机使用注意事项
查看>>
swing入门教程
查看>>
好莱坞十大导演排名及其代表作,你看过多少?
查看>>