Ecust OJ
1
#include <bits/stdc++.h> using namespace std ; struct bigInt {
int num[ ] ;
int size ;
static const int maxN = ; private :
void Init ( ) {
size = ;
for ( int i= ; i<=maxN ; ++i )
num[ i ] = ;
}
public :
void toInt ( char *ch ) {
Init ( ) ;
size = strlen ( ch ) ;
for ( int i= ; i<size ; ++i ) {
num[ i ] = ch[ size - i - ] - '' ;
}
}
public :
void Plus ( bigInt o ) {
bool up = false ;
size = max ( size , o.size ) ;
for ( int i= ; i<size ; ++i ) {
num[ i ] += o.num[ i ] + up ;
up = false ;
if ( num[ i ] >= ) {
num[ i ] -= ;
up = true ;
}
}
if ( up ) num[ size++ ] = ;
}
public :
void print ( ) {
for ( int i=size- ; i>= ; --i ) {
printf ( "%d" , num[ i ] ) ;
}
putchar ( '\n' ) ;
}
} A , B; char str1[ ] , str2[ ] ;
int main ( ) {
while ( scanf ( "%s%s" , str1 , str2 ) != EOF ) {
A.toInt (str1) ;
B.toInt (str2) ;
A.Plus ( B ) ;
A.print ( ) ;
}
return ;
}
3
#include <bits/stdc++.h> using namespace std ;
const int maxN = ;
const int maxM = ; struct Edge {
int to,from,date;
}e[ maxM ] ; int father[ maxM ] ;
bool crash[ maxM ] ; bool cmp ( Edge a , Edge b ) {
return a.date > b.date ;
} int getfa ( int x ) {
return father[ x ] == x ? x : father[ x ] = getfa ( father[ x ] ) ;
} inline int INPUT ( ) {
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=(x<<)+(x<<)+ch-'';ch=getchar();}
return x*f;
} void Init ( const int N , const int M ) {
for ( int i= ; i<=N ; ++i ) {
father[ i ] = i ;
}
sort( e + , e + M + , cmp ) ;
} void Debug ( int n ) {
for ( int i= ; i<=n ; ++i ) {
cout << e[ i ].date << endl ;
}
}
int main ( ) {
int N = INPUT ( ) , M = INPUT ( ) ;
memset ( crash , false , sizeof ( crash ) ) ;
for ( int i= ; i<=M ; ++i ) {
e[ i ].to = INPUT ( ) ;
e[ i ].from = INPUT ( ) ;
e[ i ].date = INPUT ( ) ;
}
Init ( N , M ) ;
//Debug(M); for ( int i= ; i<=M ; ++i ) {
int px = getfa( e[ i ].to ) ;
int py = getfa( e[ i ].from ) ;
if ( px != py ) {
father[ px ] = py ;
crash[ e[ i ].date ] = true ;
}
}
int _cnt = ;
for ( int i= ; i<=maxM ; i++ ) {
if ( crash[ i ] ) _cnt++ ;
}
printf ( "%d\n" , _cnt ) ;
return ;
}
4
#include <bits/stdc++.h> using namespace std ;
typedef long long ll ;
ll k ;
ll QP ( ll a , ll b ) {
ll ret = , base = a ;
while( b ) {
if ( b & ) ret = ret * base % k ;
base = base * base % k ;
b >>= ;
}
return ret ;
} int main ( ) {
ll b , n ;
cin >> b >> n >> k ;
cout << QP ( b , n ) % k << endl ;
return ;
}
6
#include <bits/stdc++.h> using namespace std;
int ans[ ][ ][ ][ ] ;
int card[ ] , v[ ] , buc[ ] ; int IN ( ) {
int x=,f=;char ch=getchar();
while(ch>''||ch<''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
} int tot; bool wxn ( int s ) {
for ( int i= ; i<= ; ++i )
if ( card[ i ] >= ) return false ;
if ( s > ) return false ;
return true ;
} bool whn ( ) {
for ( int i= ; i<= ; ++i )
if ( card[ i ] <= ) return false ;
return true ;
} bool boom ( ) {
memset ( buc , , sizeof( buc ) ) ;
for ( int i= ; i<= ; ++i )
if ( ( ++ buc[ card[ i ] ] )== ) return true ;
return false ;
} bool head ( int s ) {
for ( int i= ; i<= ; ++i )
for ( int j=i+ ; j<= ; ++j )
if ( ( s - v[ i ] - v[ j ] ) % == ) return true ;
return false ;
}
int calc ( ) {
int s = ;
for ( int i= ; i<= ; ++i ) s += v[ i ] ;
if ( wxn( s ) ) return ;
if ( whn( ) ) return ;
if ( boom ( ) ) return ;
if ( head( s ) ) {
if ( s % <= && s % != ) return s % ;
else if ( s % != ) return ( s % ) * ;
else return ;
}
else return ;
}
void init ( ) {
for ( int a= ; a<= ; ++a )
for ( int b= ; b<= ; ++b )
for ( int c= ; c<= ; ++c )
for ( int d= ; d<= ; ++d ) {
card[ ] = a ; card[ ] = b ; card[ ] = c ;card[ ] = d ;
for ( int i= ; i< ; ++i ) v[ i ] = min ( card[ i ] , ) ;
for ( int i= ; i<= ; ++i ) {
card[ ] = i ;
v[ ] = min ( card[ ] , ) ;
ans[ a ][ b ][ c ][ d ] += calc ( ) ;
}
}
}
int main ( ) {
init ( ) ;
for ( int T = IN ( ) ; T ; --T )
printf ( "%.0lf\n" , ( double ) ans[ IN( ) ][IN( ) ][IN( ) ][IN( ) ] / ) ;
return ;
}
14
//#include <bits/stdc++.h>
#include <cstdio> int INPUT ( ) {
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch<=''&&ch>=''){x=(x<<)+(x<<)+ch-'';ch=getchar();}
return x*f;
} int main ( ) {
int N = INPUT ( ) ;
int cnt = , tmp = - ;
for ( int i= ; i<=N ; ++i ) {
int aa = INPUT ( ) ;
if ( aa == tmp ) ++cnt ;
else --cnt ;
if ( !cnt ) {
cnt = ;
tmp = aa ;
}
}
printf ( "%d\n" , tmp ) ;
return ;
}
25
#include <cstdio>
#include <cstdlib>
#include <cmath> using namespace std ;
typedef double db ;
const double eps = 1e- ;
const int maxN = ; int n , k ;
db L[ maxN ] ;
bool judge ( db mid , int k ) {
int nn = ;
for ( int i= ; i<=n ; ++i )
nn += L[ i ] / mid ;
return nn < k ;
} int main ( ) {
scanf ( "%d%d" , &n , &k ) ;
for ( int i= ; i<=n ; ++i )
scanf ("%lf" , &L[ i ] ) ;
db l = 0.000000, r = 100001.00 , mid ;
while ( r - l > eps ) {
mid = ( l + r ) / ;
if ( judge( mid , k ) )
r = mid ;
else
l = mid ;
}
printf ( "%.2lf\n" , floor ( r * ) / ) ;
return ;
}
29
#include <bits/stdc++.h> using namespace std ;
const int maxN = ;
const int inf = ; struct Tree {
int l , r , mx , sum ;
};
struct Edge {
int to , next ;
}; Tree tr[ maxN << ] ;
Edge e[ maxN << ] ;
int head[ maxN ], start[ maxN ] , DFN[ maxN ] , pre[ maxN ] , dep[ maxN ] , size[ maxN ] , val[ maxN ] , Rank[ maxN ]; inline int INPUT ( ) {
int x = , f = ; char ch = getchar ( ) ;
while ( ch < '' || ch > '' ) {if ( ch == '-' ) f = - ; ch = getchar ( ) ; }
while ( ch >='' && ch <='' ) { x = ( x << ) + ( x << ) + ch - '' ; ch = getchar ( ) ; }
return x * f ;
} int _cnt , dfs_num ;
inline void addEdge ( const int x , const int y ) {
e[ ++_cnt ].to = y ;
e[ _cnt ].next = head[ x ] ;
head[ x ] = _cnt ;
} void initDfs ( const int x ) {
size[ x ] = ;
for ( int i=head[ x ] ; i ; i = e[ i ].next ) {
if ( e[ i ].to != pre[ x ] ) {
dep[ e[ i ].to ] = dep[ x ] + ;
pre[ e[ i ].to ] = x ;
initDfs ( e[ i ].to ) ;
size[ x ] += size[ e[ i ].to ] ;
}
}
} void Dfs ( const int x , const int chainStart ) {
DFN[ x ] = ++dfs_num ;
Rank[ dfs_num ] = x ;
start[ x ] = chainStart ;
int heavy = ;
for ( int i=head[ x ] ; i ; i=e[ i ].next ) {
if ( e[ i ].to != pre[ x ] && size[ e[ i ].to ] > size[ heavy ] ) {
heavy = e[ i ].to ;
}
}
if ( heavy ) Dfs ( heavy , chainStart ) ;
for ( int i=head[ x ] ; i ; i=e[ i ].next ) {
if ( e[ i ].to != heavy && e[ i ].to != pre[ x ] )
Dfs ( e[ i ].to , e[ i ].to ) ;
}
} void buildTree ( int ll ,int rr ,int i ){
tr[ i ].l = ll;
tr[ i ].r = rr;
if ( ll == rr ) {
tr[ i ].sum = val[ Rank[ ll ] ] ;
tr[ i ].mx = val[ Rank[ ll ] ] ;
} else {
int mid = ( ll + rr ) >> ;
buildTree ( ll , mid , i << ) ;
buildTree ( mid + , rr , i << | ) ;
tr[ i ].mx = max ( tr[ i << ].mx , tr[ i << | ].mx ) ;
tr[ i ].sum = tr[ i << ].sum + tr[ i << | ].sum ;
}
} void updateTree ( int target , int val_ , int i ) {
if ( tr[ i ].l == tr[ i ].r ) {
tr[ i ].mx = val_ ;
tr[ i ].sum = val_ ;
}else {
int mid = ( tr[ i ].l + tr[ i ].r ) >> ;
if ( target <= mid )
updateTree ( target , val_ , i << ) ;
else
updateTree ( target , val_, i << | ) ;
tr[ i ].mx = max ( tr[ i << ].mx , tr[ i << | ].mx ) ;
tr[ i ].sum = tr[ i << ].sum + tr[ i << | ].sum ;
}
} int querySum ( const int q , const int w , const int i ) {
if ( q <= tr[i].l && w >= tr[i].r ) return tr[i].sum;
else {
int mid = ( tr[ i ].l + tr[ i ].r ) >> ;
if ( q > mid ) return querySum ( q , w , i << | ) ;
else if ( w <= mid ) return querySum ( q , w , i << ) ;
else return querySum ( q , w , i << | ) + querySum ( q , w , i << ) ;
}
} int queryMax ( const int q , const int w , const int i ) {
if ( q <= tr[i].l && w >= tr[i].r ) return tr[i].mx;
else {
int mid = ( tr[ i ].l + tr[ i ].r ) >> ;
if ( q > mid ) return queryMax ( q , w , i << | ) ;
else if ( w <= mid ) return queryMax ( q , w , i << ) ;
else return max ( queryMax ( q , w , i << | ) , queryMax ( q , w , i << ) ) ;
}
}
int solveSum ( int x , int y ) {
int ret = ;
while ( start[ x ] != start[ y ] ) {
if ( dep[ start[ x ] ] < dep[ start[ y ]] ) swap( x , y ) ;
ret += querySum ( DFN[ start[ x ]] , DFN[ x ] , ) ;
x = pre[ start[ x ] ] ;
}
if ( DFN[ x ] > DFN[ y ]) swap( x, y ) ;
ret += querySum ( DFN[ x ] , DFN[ y ] , ) ;
return ret ;
} int solveMax ( int x , int y ) {
int ret = -inf ;
while ( start[ x ] != start[ y ] ) {
if ( dep[ start[ x ] ] < dep[ start[ y ] ] ) swap ( x , y ) ;
ret = max ( ret ,queryMax ( DFN[ start[ x ] ] , DFN[ x ] , ) ) ;
x = pre[ start[ x ] ] ;
}
if ( DFN[ x ] > DFN[ y ] ) swap ( x , y ) ;
ret = max ( ret , queryMax ( DFN[ x ] , DFN[ y ] , ) ) ;
return ret ;
}
int main ( ) {
int N = INPUT ( ) ;
for ( int i= ; i<N ; ++i ) {
int x = INPUT ( ) , y = INPUT ( ) ;
addEdge ( x , y ) ;
addEdge ( y , x ) ;
}
for ( int i= ; i<=N ; ++i ) val[ i ] = INPUT ( ) ;
initDfs ( ) ;
Dfs( , ) ;
buildTree ( , N , ) ;
int Q = INPUT ( ) ;
char op[ ] ;
for ( int i= ; i<=Q ; ++i ) {
scanf ( "%s" , op ) ;
int x = INPUT ( ) , y = INPUT ( ) ;
if ( op[ ] == 'H' ) {
updateTree ( DFN[ x ] , y , ) ;
}else
if ( op[ ] == 'S' ) {
printf ( "%d\n" , solveSum ( x , y ) ) ;
}else {
printf ( "%d\n" , solveMax ( x , y ) ) ;
}
}
return ;
}
31
#include <bits/stdc++.h> using namespace std ;
const int maxN = ;
const int maxM = ;
const int inf = ; struct Edge {
int to , next , val ;
}; Edge e[ maxM << ] ;
int head[ maxN ] , dis[ maxN ] ;
bool inQ[ maxN ] ;
int _cnt ; void addEdge ( const int x , const int y , const int val_ ) {
e[ ++_cnt ].to = y ;
e[ _cnt ].val = val_ ;
e[ _cnt ].next = head[ x ] ;
head[ x ] = _cnt ;
} inline int INPUT ( ) {
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(x=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=(x<<)+(x<<)+ch-'';ch=getchar();}
return x*f;
} void Spfa ( const int S ) {
memset ( dis , 0x3f3f3f , sizeof ( dis ) ) ;
memset ( inQ , false , sizeof ( inQ ) );
queue<int> Q ;
Q.push( S ) ;
inQ[ S ] = true ;
dis[ S ] = ;
int p ;
while ( !Q.empty ( ) ) {
p = Q.front ( ) ;
inQ[ p ] = false ;
Q.pop ( ) ;
for ( int i = head[ p ] ; i ; i = e[ i ].next ) {
int to_ = e[ i ].to ;
if ( dis[ to_ ] > dis[ p ] + e[ i ].val ) {
dis[ to_ ] = dis[ p ] + e[ i ].val ;
if ( !inQ[ to_ ] ) {
Q.push ( to_ ) ;
inQ[ to_ ] = true ;
}
}
}
}
}
void Debug ( int n ) {
for ( int i= ; i<=n ; ++i ) {
cout << dis[ i ] << ' ' ;
}
cout << endl ;
}
int main ( ) {
int N = INPUT ( ) , M = INPUT ( ) , S = INPUT ( ) , m = INPUT ( ) ;
for ( int i= ; i<=M ; ++i ) {
int x = INPUT ( ) , y = INPUT ( ) ;
addEdge( x , y , ) ;
addEdge( y , x , ) ;
}
Spfa ( S ) ;
//Debug ( N ) ;
int ans = -inf ;
for ( int i= ; i<=N ; ++i ) {
ans = max ( ans , dis[ i ] ) ;
}
printf ( "%d\n" , ans + m ) ;
return ;
}
34
#include <bits/stdc++.h> using namespace std ;
const int maxN = ; struct Edge {
int to , next ;
};
Edge e[ maxN << ] ;
int head[ maxN ] , size[ maxN ] , hv[ maxN ] ; int INPUT ( ) {
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch<=''&&ch>=''){x=(x<<)+(x<<)+ch-'';ch=getchar();}
return x*f;
} int _cnt ; void addEdge ( int x , int y ) {
e[ ++_cnt ].to = y ;
e[ _cnt ].next = head[ x ] ;
head[ x ] = _cnt ;
} void Dfs ( const int x , const int fa ) {
size[ x ] = ;
for ( int i=head[ x ] ; i ; i=e[ i ].next ) {
if ( e[ i ].to != fa ) {
Dfs ( e[ i ].to , x ) ;
size[ x ] += size[ e[ i ].to ] ;
}
}
int heavySon = ;
for ( int i=head[ x ] ; i ; i=e[ i ].next ) {
if ( e[ i ].to != fa && size[ e[ i ].to ] > size[ heavySon ] ) {
heavySon = e[ i ].to ;
}
}
if ( heavySon ) hv[ x ] = heavySon ;
} bool judge ( const int x , int n ) {
if ( size[ hv[ x ] ] > ( int )( n / ) ) return false ;
if ( ( n - size[ x ] ) > ( int )( n / ) ) return false ;
return true ;
} int main ( ) {
int N = INPUT ( ) ;
for ( int i= ; i<N ; ++i ) {
int x = INPUT ( ) , y = INPUT ( ) ;
addEdge ( x , y ) ;
addEdge ( y , x ) ;
}
Dfs ( , ) ;
for ( int i= ; i<=N ; ++i ) {
if ( judge ( i , N ) ) {
printf ( "%d\n" , i ) ;
}
}
return ;
}
42
#include <bits/stdc++.h> using namespace std ;
typedef long long LL ;
const int maxN = ; char op[ maxN ] ; int main ( ) {
int t ;
while ( scanf ( "%s" , op + ) != EOF ) {
int len = strlen ( op + ) ;
cin >> t ;
LL xx = , yy = ;
if ( t > len ) {
for ( int i= ; i<=len ; ++i ) {
switch ( op[ i ] ) {
case 'E' :
++xx ; break ;
case 'W' :
--xx ; break ;
case 'S' :
--yy ; break ;
case 'N' :
++yy ;break ;
default :break ;
}
}
if ( ( int ) t / len ) {
xx *= ( int ) ( t / len ) ;
yy *= ( int ) ( t / len ) ;
}
for ( int i= ; i<= t - ( int )( t / len )*len ; ++i ) {
switch ( op[ i ] ) {
case 'E' :
++xx ; break ;
case 'W' :
--xx ; break ;
case 'S' :
--yy ; break ;
case 'N' :
++yy ;break ;
default :break ;
}
}
} else {
for ( int i= ; i<=t ; ++i ) {
switch ( op[ i ] ) {
case 'E' :
++xx ; break ;
case 'W' :
--xx ; break ;
case 'S' :
--yy ; break ;
case 'N' :
++yy ;break ;
default :break ;
}
}
}
printf ( "%lld %lld\n" , xx , yy ) ;
}
return ;
}
50
#include "bits/stdc++.h" using namespace std ;
typedef long long QAQ ;
const int maxN = ;
struct SegTree { int l , r ; QAQ sum , mul , add ; } tr[ maxN ] ;
QAQ MOD , val ; QAQ arr[ maxN ] ; void Push_up ( const int i ) {
tr[ i ].sum = ( tr[ i << | ].sum + tr[ i << ].sum ) % MOD ;
} void Push_down ( int i , int m ) {
tr[ i << ].add = ( tr[ i << ].add * tr[ i ].mul + tr[ i ].add ) % MOD ;
tr[ i << | ].add = ( tr[ i << | ].add * tr[ i ].mul + tr[ i ].add ) % MOD ;
tr[ i << ].mul = tr[ i << ].mul * tr[ i ].mul % MOD ;
tr[ i << | ].mul = tr[ i << | ].mul * tr[ i ].mul % MOD ;
tr[ i << ].sum = ( tr[ i << ].sum * tr[ i ].mul + tr[ i ].add * ( m - ( m >> ) ) ) % MOD ;
tr[ i << | ].sum = ( tr[ i << | ].sum * tr[ i ].mul + tr[ i ].add * ( m >> ) ) % MOD ;
tr[ i ].add = ;
tr[ i ].mul = ;
} void Build_Tree ( const int x , const int y , const int i ) {
tr[ i ].l = x ; tr[ i ].r = y ;
tr[ i ].mul = ;
if ( x == y ) {
tr[ i ].sum = arr[ x ] ;
return ;
}
else {
int mid = ( x + y ) >> ;
Build_Tree ( x , mid , i << ) ;
Build_Tree ( mid + , y , i << | ) ;
Push_up ( i ) ;
}
} QAQ Query_Tree ( const int q , const int w , const int i ) {
if ( q <= tr[ i ].l && tr[ i ].r <= w ) {
return tr[ i ].sum % MOD ;
}
else {
Push_down ( i , tr[ i ].r - tr[ i ].l + ) ;
int mid = ( tr[ i ].l + tr[ i ].r ) >> ;
if ( q > mid ) return Query_Tree ( q , w , i << | ) % MOD;
else if ( w <= mid ) return Query_Tree ( q , w , i << ) % MOD ;
else return ( Query_Tree ( q , w , i << | ) + Query_Tree ( q , w , i << ) ) % MOD ;
Push_up ( i ) ;
}
} void Update_Tree ( int i , int q , int w , int _ ) {
if ( q <= tr[ i ].l && tr[ i ].r <= w ) {
if ( _ == ) {
tr[ i ].add = tr[ i ].add * val % MOD ;
tr[ i ].mul = tr[ i ].mul * val % MOD ;
tr[ i ].sum = tr[ i ].sum * val % MOD ;
}
else if ( _ == ) {
tr[ i ].add = ( tr[ i ].add + val ) % MOD ;
tr[ i ].sum = ( tr[ i ].sum + ( QAQ ) val * ( tr[ i ].r - tr[ i ].l + ) ) % MOD ;
}
}
else {
Push_down ( i , tr[ i ].r - tr[ i ].l + ) ;
int mid = ( tr[ i ].l + tr[ i ].r ) >> ;
if ( q > mid ) Update_Tree ( i << | , q , w , _ ) ;
else if ( w <= mid ) Update_Tree ( i << , q , w , _ ) ;
else {
Update_Tree ( i << | , q , w , _ ) ;
Update_Tree ( i << , q , w , _ ) ;
}
Push_up ( i ) ;
}
} void DEBUG_( int n ) {
for ( int i= ; i<=n ; ++i ) {
printf ( "\n%d:\nsum:%d\nadd:%d\nmul:%d\n" , i , tr[ i ].sum , tr[ i ].add , tr[ i ].mul ) ;
}
}
int main ( ) {
QAQ N , Q ;
//freopen ( "sbsbs.out" , "w" , stdout ) ;
scanf ( "%lld %lld" , &N , &MOD ) ;
for ( int i= ; i<=N ; ++i ) scanf ( "%lld" , arr + i ) ;
Build_Tree( , N , ) ;
scanf ( "%lld" , &Q ) ;
for ( int i= ; i<=Q ; ++i ){
QAQ op , l , r ;
scanf ( "%lld" , &op ) ;
//DEBUG_( 13 ) ;
if ( op == ) {
scanf ( "%lld %lld" , &l , &r ) ;
printf ( "%lld\n" , Query_Tree ( l , r , ) ) ;
}
else {
scanf ( "%lld %lld %lld" , &l , &r , &val ) ;
Update_Tree ( , l , r , op ) ;
}
}
return ;
}
Ecust OJ的更多相关文章
- 国外、国内各大OJ
下面是几个比较大的在线提交系统(Online Judge)里面有大量历年的竞赛题目,注册一个ID,然后用自己熟悉的语言(一般有Pascal/C/C++/Java)写好源代码提交即可,会实时返 回信息告 ...
- 整理几个牛人博客以及OJ
Blogs 陈立杰(wjmzbmr):http://wjmzbmr.com/ 飘过的小牛:http://blog.csdn.net/niushuai666 王垠:http://www.yinwang. ...
- 各大ACM OJ网址
做快乐的程序员 以你的条件,你不必追求优秀,但你可以做到良好. 各大OJ网址 ACM OJ Collection(排名不分先后): 中国:(China) 华东地区: 浙江: 杭州电子科技大学(HDU) ...
- Online Judge(OJ)搭建(第一版)
搭建 OJ 需要的知识(重要性排序): Java SE(Basic Knowledge, String, FileWriter, JavaCompiler, URLClassLoader, Secur ...
- [C#] 逆袭——自制日刷千题的AC自动机攻克HDU OJ
前言 做过杭电.浙大或是北大等ACM题库的人一定对“刷题”不陌生,以杭电OJ为例:首先打开首页(http://acm.hdu.edu.cn/),然后登陆,接着找到“Online Exercise”下的 ...
- oj Rapid Typing
import bs4 import requests import urllib2 import time import base64 session=requests.Session() respo ...
- 在线OJ实用技巧(转载)
1.一般用C语言节约空间,要用C++库函数或STL时才用C++; cout.cin和printf.scanf最好不要混用. 2.有时候int型不够用,可以用long long或__int64型(两个下 ...
- OJ生成器(一)制作Online Judge前的准备和策划
我这校区新的微机老师斗志昂扬,准备让我们这学校萎靡的信息技术竞赛重振雄风.然后有一次我半开玩笑地说建一个自己的OJ吧,老师也就鼓励我去做了. 开什么玩笑……!我可是马上要参加NOIP的人! 于是老师说 ...
- 【LeetCode OJ】Validate Binary Search Tree
Problem Link: https://oj.leetcode.com/problems/validate-binary-search-tree/ We inorder-traverse the ...
随机推荐
- Intellij IDEA 修改jsp 不能实时更新
Intellij IDEA 修改jsp 不能实时更新 1. 首先,output要指定到项目的webapp下,这样应该就可以实时更新了 2. 我的问题是这样设置之后,也不可以,原来是可以的,重装系统之后 ...
- vue eventBus 跳坑的办法
前言(feihua): 最近闲来没事写了一个小的demo,在小的数据传输上没有必要去使用vuex,对于非父子组件的传值方法总结了一点心得体会供大家参考(如有太low,还请大神别喷俺) 先上官方文档: ...
- chrome浏览器开发常用快捷键之基础篇-遁地龙卷风
1.标签页和窗口快捷键 打开新的标签页,并跳转到该标签页 Ctrl + t 重新打开最后关闭的标签页,并跳转到该标签页 Ctrl + Shift + t 跳转到下一个打开的标签页 Ctrl + PgD ...
- springSecurity有毒啊啊啊啊啊啊啊
心累 的一天呀 昨天跑的demo 怎么都不拦截 我服: 第二天 又重新 建立 了个 重新做了 一遍 就神奇的 拦击了 我 ......有毒 我哩个去..抓狂 !!!!! <吐血总结,好想死&g ...
- 只要三步,使用html5+js实现像素风头像生成器
只要三步,使用html5+js实现像素风头像生成器 html5的画布给我们带来了很大的空间,其实像素风格头像生成器只是用到了画方块的方法.画一个像素头像,只要三步,1.解决像素点,2.解决像素点之间的 ...
- CNN的反向传播
在一般的全联接神经网络中,我们通过反向传播算法计算参数的导数.BP 算法本质上可以认为是链式法则在矩阵求导上的运用.但 CNN 中的卷积操作则不再是全联接的形式,因此 CNN 的 BP 算法需要在原始 ...
- 如果想让某个块状元素右对齐,脑子里不要就一个float:right,很多时候,margin-left:auto才是最佳的实践
- 高可用Redis(十二):Redis Cluster
Redis Cluster是Redis官方提供的Redis集群功能 1.为什么要实现Redis Cluster 1.主从复制不能实现高可用 2.随着公司发展,用户数量增多,并发越来越多,业务需要更高的 ...
- P2419 [USACO08JAN]牛大赛Cow Contest(dfs走天下/)
题目描述 FJ的N(1 <= N <= 100)头奶牛们最近参加了场程序设计竞赛:).在赛场上,奶牛们按1..N依次编号.每头奶牛的编程能力不尽相同,并且没有哪两头奶牛的水平不相上下,也就 ...
- Win10 中将网页转换成pdf的简便方法
注意:该方法不是将网页完整地保存下来,而是选取其中主要的文字信息. (1)打开要保存的网页 (2)按快捷键 Ctrl+P 打开打印界面 (3)选择打印机为 “Microsoft Print to PD ...