
SGU
v5zsq
新的一天,新的不会
展开
-
SGU 103 Traffic Lights(SPFA)
Description 给定一个带权无向图,每个点有一个颜色属性(B or P),颜色会在B和P之间来回变换,两种颜色各有一个持续时间,两个邻接的点之间能够通行当且仅当两点是相同的颜色,通行的代价为边权,可在点处等待,给定起点,终点,每个点的初始颜色和持续时间,蓝色的持续时间,紫色的持续时间,求起点到终点的最短时间和满足最短时间的路径 Input 第一行两个整数s和t表示起点和终点,第二行两个原创 2016-04-14 08:53:28 · 599 阅读 · 0 评论 -
SGU 139 Help Needed!(机智)
Description 给定一个乱序的十六数码,问是否能通过一些移动,将它恢复到初始状态(0的位置表示空缺位置,非0位置上的方块可以向0移动,移动只能在上下左右四个方向进行) Input 一个4*4的矩阵表示一个乱序的十六数码 Output 判断是否能通过一些移动将其恢复到初始状态 Sample Input 1 2 3 4 5 6 7 8 9 10 11 0 13 14 15 1原创 2016-04-16 09:39:39 · 635 阅读 · 0 评论 -
SGU 138 Games of Chess(构造)
Description n个人比赛,每次从中选出两人比,胜者进入下一局,现给出每个人的比赛局数,问总比赛局数和每局的比赛的结果,保证有解 Input 第一行为一整数n表示人数,第二行n个整数表示每个人的比赛局数(2<=n<=100) Output 第一行输出总比赛局数num,之后num行每行输出两个整数表示该局的比赛双方,第一个是获胜者 Sample Input 4 2 4 1 5原创 2016-04-16 09:30:36 · 754 阅读 · 0 评论 -
SGU 137 Funny Strings(构造)
Description 求一个长度为n的序列(元素非负),使得其和为k,且首元素加一尾元素减一后该序列通过左右移动还能变为和原序列一样 Input 第一行为两个整数n和k(2<=n<=1000,1<=k<=30000,gcd(n,k)=1(n,k互素是这个序列存在的充分条件)) Output 输出这个序列 Sample Input 9 16 Sample Output 1 2 2原创 2016-04-16 09:21:46 · 526 阅读 · 0 评论 -
SGU 136 Erasing Edges(计算几何)
Description 顺次给出一个n边形的n条边的中点坐标,问这个n边形是否存在,如果存在,顺次输出n个顶点的坐标,否则输出NO Input 第一行为一整数n表示边数,之后n行每行两个数表示该条边的中点坐标(3<=n<=10000) Output 如果该多边形存在则输出YES,并输出n个顶点的坐标,否则输出NO Sample Input 4 0 0 2 0 2 2 0 2原创 2016-04-15 11:53:59 · 452 阅读 · 0 评论 -
SGU 135 Drawing Lines(dp)
Description 一张纸切n次最多会被分成几部分 Input 一个整数n(0<=n<=65535) Output 输出一张纸被切n次最多会被分成几部分 Sample Input 0 Sample Output 1 Solution 简单dp,设dp[i]为一张纸被切i次最多会被分成几部分,那么第i+1次至多和前i次都相交,也就是说会在dp[i]的基础上切出i+1部分,故有原创 2016-04-15 11:43:05 · 543 阅读 · 0 评论 -
SGU 134 Centroid(树形DP)
Description 给出一棵n个节点的无向树,问删去树上哪个顶点及与这个点相连的边后,能够最小化剩余连通块中节点的最大值 Input 第一行为一整数n表示点数,之后n-1行每行两个整数表示树上一条边(1<=n<=16000) Output 输出删去一个顶点后最小的剩余剩余连通块中节点的最大值,并输出满足这个条件的节点数以及这些节点的编号 Sample Input 7 1 2 2原创 2016-04-15 11:37:23 · 555 阅读 · 0 评论 -
SGU 133 Border(水~)
Description 给定n个整数对(ai,bi),如果存在一个整数对(aj,bj) 使得aj < ai并且ai < bj 则称(ai,bi)是多余的,问整数对中有多少是多余的 Input 第一行为一整数n表示整数对数量,之后n行每行两个整数ai,bi表示一整数对(1<=n<=16000,0<=ai < bi<=2*10^9),保证所有ai不相同,所有bi不相同 Output 输出原创 2016-04-15 11:24:43 · 486 阅读 · 0 评论 -
SGU 127 Telephone directory(水~)
Description 有n个四位数的电话号码,现要将这些电话号码写进电话本里,电话本的每一页只能写第一个数字相同的电话号码,且每页至多写k个,问将这些电话号码写进电话本中至少需要写几页 Input 第一行为一整数k表示每页能够写的电话号码数量,第二行一整数n表示电话号码数量,之后n行每行一个四位数表示一个电话号码 Output 输出将这些电话号码写进电话本中至少需要写几页 Sample原创 2016-04-15 11:00:42 · 524 阅读 · 0 评论 -
SGU 126 Boxes(数论)
Description 两个盒子里面分别有a个球和b个球,每次可以从一个盒子里面拿出和另一个盒子中球数相同的球放入另一个盒子中,问最少经过几步可以将所有球放入同一个盒子中,如果永远不能满足条件则输出-1 Input 两个整数a和b(0<=a,b<=2^31-1) Output 最少步数,永远不能满足条件则输出-1 Sample Input 2 6 Sample Output 2原创 2016-04-15 10:56:11 · 564 阅读 · 0 评论 -
SGU 125 Shtirlits(dfs)
Description 有一个n*n矩阵A(0<=A[i][]j]<=9),现给出矩阵B,B[i][j]表示A[i][j]上下左右有多少个数字比A[i][j]大(0<=B[i][j]<=4),问满足矩阵B限制的A是否存在,如果存在输出一个方案,不存在则输出NO SOLUTION Input 第一行为一整数n表示矩阵大小,之后为一n*n的矩阵B(1<=n<=3) Output 如果存在满足B原创 2016-04-15 10:29:49 · 785 阅读 · 0 评论 -
SGU 141 Jumping Joe(扩展欧几里得)
Description 给出x1,x2,p,k,求一组非负整数解(p1,n1,p2,n2)满足: p1+n1+p2+n2=k,(p1-n1)*x1+(p2-n2)*x2=p Input 四个整数x1,x2,p,k(0< x1,x2< 40000,-40000< p< 40000,0<=k< 200000000) Output 如果存在一组非负整数解则输出YES以及这组解,否则输出NO原创 2016-04-16 18:58:15 · 910 阅读 · 0 评论 -
SGU 142 Keyword(水~)
Description 给出一个只由a和b组成的长度为n的字符串,求没在这个字符串的子串中出现的最短的由a和b组成的串 Input 第一行一个正整数n表示串长,第二行一个字符串(1<=n<=500000) Output 输出没在该串的子串集中出现过的最短的串 Sample Input 11 aabaaabbbab Sample Output 4 aaaa Solution原创 2016-04-16 19:10:49 · 556 阅读 · 0 评论 -
SGU 130 Circle(卡特兰数)
Description 一个圆上顺次有2k个点,在这2k个点上连k条弦(每个点只能连一条边),问最少可以将这个圆分为几部分,有多少种方法 Input 一个整数k(1<=k<=30) Output 两个整数表示这个圆有多少种方法被被分为最少的几部分 Sample Input 2 Sample Output 2 3 Solution 显然这个圆最少会被分成k+1部分,即2k个点两两原创 2016-04-15 11:17:22 · 717 阅读 · 0 评论 -
SGU 140 Integer Sequences(扩展欧几里得)
Description 给出n个数a[1],…,a[n],求序列x使得sum(a[i]*x[i])=b(mod p) Input 第一行三个整数n,p,b,第二行n个整数a[i] (1<=n<=100,1<=p<=10000,0<=b<=p-1,a[i]< 2*10^9) Output 如果存在满足条件的序列x则输出YES并输出x,否则输出NO Sample Input 2 7 4原创 2016-04-16 18:45:47 · 867 阅读 · 0 评论 -
SGU 200 Cracking RSA(高斯消元+高精度)
Description 给出m个整数,他们都是由前t个素数组成,问有多少个这m个数的子集,使得这个子集中数的乘积是一个完全平方数 Input 第一行两个整数t和m,第二行m个整数bi(1<=t,m<=100,1<=bi<=10^9) Output 输出满足条件的集合个数 Sample Input 3 4 9 20 500 3 Sample Output 3 Solution原创 2016-08-08 12:33:53 · 621 阅读 · 0 评论 -
SGU 118 Digital Root(数论)
Description 给出n个数a[i],求a[1]a[2]..a[n]+a[1]*a[2]..*a[n-1]+…+a[1]*a[2]+a[1]的数字根,n的数字根就是n的每位数字之和的数字根,直到数值根为个位数为止,例如789的数字根就是24的数字根,也就是6 Input 第一行一整数T表示用例组数,每组用例首先为一整数n,之后为n个整数a[i] (1<=T<=5,1<=n<=1000原创 2016-04-14 19:36:45 · 613 阅读 · 0 评论 -
SGU 154 Factorial(数论+二分)
Description 求最小的整数n使得n!的值后面有q个0 Input 一个整数q(0<=q<=10^8) Output 满足条件的最小的正整数n,如果不存在则输出No solution Sample Input 2 Sample Output 10 Solution n!后面0的个数等于n!的质因子分解形式中5的幂指数,即为[n/5]+[[n/5]/5]+…,所以n最多为原创 2016-04-16 19:54:43 · 1041 阅读 · 0 评论 -
SGU 152 Making round(水~)
Description 给出n个数,输出这n个数占总数的百分比(如果不是整数则上下取整),且保证n个百分比和为100 Input 第一行一整数n表示数的个数,第二行n个整数ai(1<=n<=10000,0<=ai<=10000) Output 输出n个数占总数的百分比,使得其和为100 Sample Input 2 10 10 Sample Output 50 50 Solu原创 2016-04-16 19:50:02 · 687 阅读 · 0 评论 -
SGU 149 Computer Network(树形DP)
Description 给出一个n个节点的树,问树上任一点i与树上其他点之间的最远距离 Input 第一行为一整数n表示树上节点数,之后n-1行第i行两个整数j,c表示树上和j之间有一条权值为c的边(1<=n<=10000) Output 输出n个数表示每个点到其他点的最远距离 Sample Input 3 1 1 1 2 Sample Output 2 3 3原创 2016-04-16 19:45:37 · 612 阅读 · 0 评论 -
SGU 146 The Runner(水~)
Description 一个人在一个总长度为l的环形跑道上跑步,给出起跑一些时间段的速度(假设每个时间段内匀速),问此人跑完之后距起点的最近距离 Input 第一行两个整数l和n,之后n行两个数ti和vi表示这ti时间段内此人速度为vi (1<=l<=1000,l至多为四位小数,n<=20000,1<=ti<=10^7,1<=vi<=10^6) Output 输出跑完后此人距起点的最近距原创 2016-04-16 19:27:50 · 477 阅读 · 0 评论 -
SGU 144 Meeting(水~)
Description 两人约定在x点到y点之间见面,如果先到的人等待了z分钟后另一个人还没到这个人就会离开,约见失败,问两个人能够约见成功的概率 Input 第一行三个数x,y,z(0<=x < y<=24,0<=z<=60*(y-x)) Output Sample Input 11 12 20.0 Sample Output 0.5555556 Solution 简单题,即求原创 2016-04-16 19:22:12 · 498 阅读 · 0 评论 -
SGU 143 Long Live the Queen(树形DP)
Description 给出一个有n个节点的子树以及每个点的权值,求一棵权值和最大的子树 Input 第一行为一整数n表示树上节点数,第二行n个整数表示每个节点的权值,之后n-1行每行两个整数表示树上的一条边(1<=n<=16000) Output 输出子树的最大权值和 Sample Input 5 -1 1 3 1 -1 4 1 1 3 1 2 4 5 Sample Ou原创 2016-04-16 19:16:45 · 622 阅读 · 0 评论 -
SGU 124 Broken line(计算几何)
Description 给出一个封闭的折线,保证没有内部交叉或者接触(即可将其看作一个简单多边形),判断一个点与这个折线的位置关系(折线内,折线上,折线外) Input 第一行为一整数n表示折线的段数,之后n行每行四个整数x1,y1,x2,y2表示折线的一段,最后两个整数x,y表示该点坐标(4<=n<=10000,-10000<=x1,y1,x2,y2,x,y<=10000) Output原创 2016-04-15 10:22:13 · 729 阅读 · 0 评论 -
SGU 123 The sum(水~)
Description 求斐波那契数列的前n项和 Input 一个整数n(1<=n<=40) Output 输出斐波那契数列的前n项和 Sample Input 5 Sample Output 12 Solution 水题 Code#include<cstdio>#include<iostream>using namespace std;#define maxn 55原创 2016-04-15 10:15:18 · 445 阅读 · 0 评论 -
SGU 122 The book(哈密顿图)
Description 给出一个n个点的无向图,每个点的度数不小于[(n+1)/2],求一条从1开始的哈密顿回路 Input 第一行一个整数n表示点数,之后n行每行为一个点的邻接表 Output 输出一条从1开始的哈密顿回路,如果不存在就输出No solution Sample Input 4 2 3 1 4 1 4 2 3 Sample Output 1 3 4 2 1原创 2016-04-15 10:13:25 · 996 阅读 · 0 评论 -
SGU 108 Self-numbers 2(数论)
Description 定义d(n)为n加上n的各位数字之和,例如d(75)=75+7+5=87 n叫d(n)的生成元,如果一个数没有生成元则称这个数为自私数,现给出一整数n,问1~n中自私数的个数,然后给出k个数a[i],输出1~k中第a[i]个自私数 Input 第一行两个整数n和k,第二行k个整数a[i]表示要输出1~n中第a[i]个自私数(1<=n<=10^7,1<=k<=5000)原创 2016-04-14 10:34:08 · 634 阅读 · 0 评论 -
SGU 107 987654321 problem(打表)
Description 给出一整数n,问n位的数字中平方后最后九位是987654321的数有多少个 Input 一个整数n表示数字位数(1<=n<=10^6) Output n位且平方后最后九位是987654321的数的个数 Sample Input 8 Sample Output 0 Solution 由用例可知八位数没有满足条件的数字,故只需要考虑九位数中满足条件的数有多少原创 2016-04-14 10:17:46 · 856 阅读 · 0 评论 -
SGU 106 The equation(扩展欧几里得)
Description 求方程ax+by+c=0的满足x1<=x<=x2且y1<=y<=y2的解的个数 Input 七个整数a,b,c,x1,x2,y1,y2,所有数的绝对值不超过10^8 Output 输出解的个数 Sample Input 1 1 -3 0 4 0 4 Sample Output 4 Solution 特殊情况的处理详见代码,现只考虑最朴素的情况 将方原创 2016-04-14 09:41:35 · 612 阅读 · 0 评论 -
SGU 105 Div 3(数论)
Description 有一个序列1,12,123,1234,…,12345678910, … ,先给出一整数n,问这个序列前n项中有多少项可以整除3 Input 一个整数n(1<=n<=2^31-1) Output 输出这个序列前n项中整除3的项数 Sample Input 4 Sample Output 2 Solution 以a[n]表示该序列第n项 a[1]%3=1,原创 2016-04-14 09:10:48 · 617 阅读 · 0 评论 -
SGU 104 Little shop of flowers(dp)
Description 有f束花和v和花瓶,不同的花插在不同的花瓶有不同的观赏度,先给出观赏度矩阵,问如何插花能使得观赏度最大 Input 第一行两个整数f和v表示花的束数和花瓶个数,之后一f*v矩阵A表示观赏度矩阵,A[i][j]表示第i束花插在第j个花瓶中带来的观赏度(1<=f<=v<=100,-50<=A[i][j]<=50) Output 输出最大的总观赏度以及满足最大观赏度的一种原创 2016-04-14 09:03:40 · 559 阅读 · 0 评论 -
SGU 102 Coprimes(欧拉函数)
Description 给出一整数n,问1~n中有多少个数与n互素 Input 一整数n(1<=n<10000) Output 输出1~n中与n互素的数的个数 Sample Input 9 Sample Output 6 Solution 求n的欧拉函数值,对n质因子分解得n=p1^a1*p2^a2*…pm^am,则euler(n)=n * (1-1/p1) * (1-1/p2原创 2016-04-14 08:27:16 · 567 阅读 · 0 评论 -
SGU 101 Domino(欧拉图)
Description 给定若干(n<=100)多米诺骨牌,每张骨牌两端有一数字(0~6),求一种骨牌排列方式,使得除两端外相邻的两张骨牌所对的数字相同 Input 第一行为一整数n表示骨牌数量,之后n行每行两个整数a和b表示该张骨牌两端的数字 Output 输出一种骨牌的排列方式使得除两端外相邻的两张骨牌所对的数字相同,输出占n行,每行表示从左到右每个位置的骨牌编号,之后+or-表示该张原创 2016-04-14 08:23:33 · 898 阅读 · 0 评论 -
SGU 100 A+B(水~)
Description 求a+b Input 两个整数a和b Output 输出a+b Sample Input 5 3 Sample Output 8 Solution 纯净水 Code#include<iostream>using namespace std;int main(){ int a,b; while(cin>>a>>b)cout<<a+b原创 2016-04-14 08:13:03 · 509 阅读 · 0 评论 -
SGU 194 Reactor Cooling(无源汇有上下界最大流)
Description 给n个点,及m根管子,每根管子用来流某种液体,管子是单向的,每时每刻每根管子流进来的物质要等于流出去的物质,要使得m条管子组成一个循环体,里面流液体。并且满足每根管子一定的流量限制,范围为[Li,Ri].即要满足每时刻流进来的不能超过Ri(最大流问题),同时最小不能低于Li。保证没有自环,两相邻点间最多有一根管子。问这个循环体是否存在,如果存在则输出每个管子里的流量,不存在原创 2016-03-02 09:17:41 · 720 阅读 · 0 评论 -
SGU 282 Isomorphism(polya)
Description 用m种颜色对一个n阶完全图染色,若一张图的节点经过重排后变成另一张图则称两张图同构,问一共有多少种不同构的染色方案,结果模p Input 三个整数n,m,p Output 输出染色方案数,结果模p(1≤n≤53, 1≤m≤1000) Sample Input 1 1 2 Sample Output 1 Solution polya,首先找置换,n个点的原创 2016-01-05 13:44:52 · 1258 阅读 · 0 评论 -
SGU 109 Magic of David Copperfield II(构造)
Description 一个n*n的棋盘(每个格子的编号为(i-1)*n+j),小明刚开始位于(1,1)处,每次可以在棋盘范围内上下左右走一步,每次可以删去某些格子让小明不能走,问如果删格子一定能使得小明在有限步后回到(1,1) Input 一整数n(2<=n<=100) Output 输出一些行表示每次的操作,每次操作占一行,首先输出距上次操作小明的步数(不能相同),之后输出一些删除格子原创 2016-04-14 11:13:03 · 597 阅读 · 0 评论 -
SGU 110 Dungeon(计算几何)
Description 给出一束光线的坐标和入射方向,再给出n个球的球心坐标和半径(保证不重合不相交),这束光纤会在n个球之间反射(满足反射定律),输出反射的序列(即球的编号),注意相切也算反射,如果反射次数超过10次则只需要输出10次,后面输出etc.表示超过10次 Input 第一行一整数n(<=50)表示球的个数,之后n行每行四个数表示每个球的球心坐标和半径,最后一行六个数表示光线的入射原创 2016-04-14 11:21:59 · 837 阅读 · 0 评论 -
SGU 121 Bridges painting(构造)
Description 给出一个n个顶点的有向图(无重边),现要给每条边染色1或2,问是否存在一种染色方案使得每个顶点所连的边中两种颜色都有(如果某点度数小于2则不考虑) Input 第一行为一整数n表示点数,之后n行每行表示一个点的邻接表,以0结束每行的输入 Output 如果存在一个合法的染色方案,则按输入顺序输出每条边应该染的颜色,否则输出No solution Sample In原创 2016-04-15 10:09:06 · 529 阅读 · 0 评论 -
SGU 120 Archipelago(计算几何)
Description 给出一个正n边形的第n1和第n2个顶点坐标,顺时针输出这个n边形的n个顶点坐标 Input 第一行为三个整数n,n1,n2,之后两行每行两个数表示这个正n边形的第n1和第n2个顶点坐标(3<=n<=150,1<=n1,n2<=n,n1!=n2) Output 顺次输出这个正n边形的n个顶点坐标 Sample Input 4 1 3 1.0000 0.0000原创 2016-04-15 09:39:08 · 533 阅读 · 0 评论