随笔分类 - OJ--URAL
摘要:1205简单题 有一些小细节 两个站可能不相连 但是可以走过去 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std; 10 #define INF 0xfffffff 11 vectored[310]; 12 double v1,v2,x[310],y[310],w[210][210],dis[210]; 13 int n,vis[210],pa[210],o[210]; 14 void spfa(int s...
阅读全文
摘要:1242简单dfs 往孩子方向搜一遍 父母方向搜一遍 输入还搞什么字符串。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 vectorfa[1010]; 9 vectorch[1010];10 int u,v,q[1010];11 int w[1010],vis1[1010],vis2[1010],o;12 void dfs1(int u)13 {14 int i;15 for(i = 0 ; i >s1)44 {45 ...
阅读全文
摘要:1033简单dfs 有一点小小的坑 就是图可能不连通 所以要从左上和右下都搜一下 加起来 从讨论里看到的讨论里看到一句好无奈的回复 “可不可以用中文呀。。。” 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 char s[40][40]; 9 int dis[4][2] = {0,1,1,0,-1,0,0,-1};10 int vis[40][40],n,num;11 int judge(int x,int y)12 {13 if(xn||y>n)14..
阅读全文
摘要:1208简单dfs 对于每个数 两种情况 取还是不取 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 mapf;10 struct node11 {12 int a,b,c;13 }p[20];14 int n,maxz;15 int vis[60];16 int judge(node x,node y)17 {18 if(x.a==y.b||x.a==y.a||x.a==y.c)19 return 0;20 ...
阅读全文
摘要:1930简单二维 标记一下是上坡还是下坡 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define N 1001010 #define INF 0xfffffff11 int dis[N][2],vis[N];12 int n;13 struct node14 {15 int u,v,next,d;16 }ed[N*20];17 int t,head[N];18 void init()19 {20 t = 0;21 ...
阅读全文
摘要:1709简单题 并查集找下就行 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define LL long long 9 int fa[110];10 int w[110][110],o[110][110];11 char s[110][110];12 int find(int x)13 {14 if(x!=fa[x])15 fa[x] = find(fa[x]);16 return fa[x];17 }18 int main()1...
阅读全文
摘要:1210简单模版题 敲个spfa还得瞟下模版。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 vectored[910];10 #defi...
阅读全文
摘要:1022简单拓扑 不能直接dfs 可能有不联通的 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 vectored[110]; 9 int n,pa[110],de[110];10 void topo()11 {12 int i,j;13 for(i = 1; i <= n ; i++)14 {15 f...
阅读全文
摘要:1136先由后左 再父 建一个二叉树 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define N 3010 8 int a[N]; 9 int tr[N];10 int g;11 void build(int s,int te,int ro)12 {13 if(s==te)14 {15 g++;16 tr[g] = a[s];17 return ;18 }19 int k = te-1,i;20...
阅读全文
摘要:1106结点染色 当前结点染为黑 朋友染为白 依次染下去这题是为二分图打基础吧 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 vectored[110]; 9 int vis[110],num;10 void dfs(int u,int c)11 {12 int i;13 vis[u] = c;14 if(c==1)15 num++;16 for(i = 0 ; i < (int)ed[u].size() ; i++)...
阅读全文
摘要:1439路漫漫其修远兮~手抄一枚splay树 长长的模版。。关于spaly树的讲解 网上很多 随手贴一篇貌似这题可以用什么bst啦 堆啦 平衡树啦 等等 这些本质都是有共同点的 查找、删除特别快 因为都有序 而且平衡~看题很容易想到用线段树做 不过数太大了 离散化嘛 你肯定这么想 不过这题真不好离...
阅读全文
摘要:1837被数据结构部分打击的不行了 换地 刷点简单的 图论第一题 floyd水过 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 int w[310][310];10 #define INF 0xfffffff11 mapf;12 struct node13 {14 char s[22];15 int id;16 }p[310];17 bool cmp(node a,node b)18 {19 return str...
阅读全文
摘要:1414破题 又逼着用stl 卡内存 trie树太耗了 水不过去用set存字符串 set可以自己按一定顺序存 且没有重复的 再用lower_bound二分查找字符串的第一次出现 接着往后找就行了 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define N 1001010 setq;11 set::iterator it;12 int kk;13 string ys = "sun";14 char ss[22];1
阅读全文
摘要:1067破题啊 写完发现理解错题意了 子目录下会有跟之前重名的把输入的字符串存下来 排下序 然后依次找跟上面有没有重的 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 vectorq[510];11 char sx[510][82][11];12 struct node13 {14 char c[82];15 }s[510];16 int o[510];17 bool cmp(node a,node b)18...
阅读全文
摘要:1628加了些数论知识 先看下剩余类的概念一个整数被正整数n除后,余数有n种情形:0,1,2,3,…,n-1,它们彼此对模n不同余。这表明,每个整数恰与这n个整数中某一个对模n同余。这样一来,按模n是否同余对整数集进行分类,可以将整数集分成n个两两不相交的子集。我们把(所有)对模n同余的整数构成的一个集合叫做模n的一个剩余类。对于a%k=x b%k=y 若x!=y a与b有边相连 则a的剩余类 与b的剩余类l里的元素也是可以相连的 即 a ->b->a+k->b+k->a 所以有环若x==y 则同一剩余类里元素都可以相连 a->a+k->a+2k->a
阅读全文
摘要:1650简单题 线段树的单点更新 就是字符串神马的 有点小繁琐 开两个map 一个存城市 一个存名字 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define N 60010 10 #define LL long long 11 LL s[Nq; 14 mapqq; 15 char pq[N][25]; 16 struct node 17 { 18 int d; 19 char s1[25]; 20...
阅读全文
摘要:1316我想说 要不要这么坑 WA了一个小时啊 ,都快交疯了,拿着题解的代码交都WA 最后很无语的觉得题解都错了 重读了N遍题意 发现没读错啊 难道写题解的那个人和我都想错了??最后把g++换个C++交吧 就这么A了 我#¥#%。。这个题有要注意的地方 WA6 取整的地方要那样处理(看代码) 具体我也不知道为什么 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 1000000 9 #define LL long long10 #define.
阅读全文
摘要:1701又是类似食物链的这一类题这题是找与根节点的和差关系 因为0节点是已知的 为0 那么所有的都可以转换为与0的和差关系可以规定合并的两节点 由大的指向小的 然后再更新和差关系有可能最后有的不在0集合中 这时要确定最大初值 当然根据集合中出现的负值来确定 题目中工资不能出现负值 也不可大于10^9 在处理完关系后 再判断一下这两个条件 不满足的话就输出m 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 50010 9 #define LL.
阅读全文
摘要:1628题意不太好理解 求横黑条 和竖黑条共有多少个 注意1*1的情况 如果横向纵向都是1*1 算为一个 否则不算用了下vector 枚举找下 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 30010 9 vectorp[N];10 vectorq[N];11 int o1[N],o2[N];12 int main()13 {14 int i,j,m,n,k,x,y,t,sum=0;15 scanf("%d%d%d",&
阅读全文
摘要:1523这题应该说有一些DP的思想吧 dp[i][j]表示以i为结尾第j个数的个数 k单调下降 直接求的话肯定超时 然后用树状数组来进行维护求k-1次树状数组 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define lowbit(x) x&(-x) 8 #define N 20010 9 #define LL long long10 #define mod 100000000011 int dp[N][12],n,a[N],po[N],sum[N][12];12 vo
阅读全文

浙公网安备 33010602011771号